Ich habe diese POJO:Jackson-Mapping-Objekt oder eine Liste von Objekt auf json Eingang je
public class JsonObj {
private String id;
private List<Location> location;
public String getId() {
return id;
}
public List<Location> getLocation() {
return location;
}
@JsonSetter("location")
public void setLocation(){
List<Location> list = new ArrayList<Location>();
if(location instanceof Location){
list.add((Location) location);
location = list;
}
}
}
das „location“ Objekt aus dem json-Eingang kann entweder ein einfaches Beispiel von Standort oder ein Array von Ort sein. Wenn es nur eine Instanz ist, bekomme ich diesen Fehler:
Could not read JSON: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token
Ich habe versucht, eine benutzerdefinierte Setter zu implementieren, aber es hat nicht funktioniert. Wie kann ich je nach json-Eingabe einen Standort oder eine Liste zuordnen?
Verschiedene JSON bedeutet verschiedene JSON DTO. Wenn Ihr JSON ein '[]' hat, müssen Sie 'List' verwenden, wenn es ein' {} 'hat, benötigen Sie ein einfaches Objekt. –
Es ist manchmal [] und manchmal {} für den gleichen Schlüssel und leider kann ich das nicht ändern. – TrtG
Erstellen Sie einen benutzerdefinierten Deserializer, der prüft, ob es ein '[]' oder ein '{}' ist, und erstellt entsprechend eine Instanz und fügt sie der 'Liste' hinzu. –