Ich versuche, Json-String in ein Java-Objekt zu konvertieren. Alles läuft gut, Objekt wird erstellt, aber die Eigenschaften werden nicht übergeben. Dies führt zu einem leeren (Standard) Objekt. Was fehlt mir?
Hier ist ein Java-Objektmodell:
public class LetterCounts implements Serializable {
private String UserId;
private int Total;
private int UnRead;
private int Flagged;
private boolean Deleted;
public LetterCounts(){
}
//getters and setters
}
Hier ist mein Codeausschnitt:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
T returnValue = mapper.readValue(sb.toString(), clazz);
Hier ist clazz der Name der Klasse, in die ich konvertieren muss (in diesem Fall LetterCounts).
{"$id":"1","UserId":"users_1","Total":30,"UnRead":13,"Flagged":17,"Deleted":false}
Wenn ich zur Deserialisierung gson benutze, funktioniert das gut. Aber ich muss Jackson Konverter verwenden.
Antworten:
0 für die Antwort № 1Es scheint ein Problem mit Ihrer Variablenbenennung zu sein. Da Sie Ihre Getter- und Setter-Methoden ausgelassen haben, gehe ich davon aus, dass sie so aussehen setUserId(String UserId)
, getUserId()
, usw. Jackson erwartet (konsistent mit den Java-Namenskonventionen), dass die Felder in Ihrer JSON benannt werden userId
usw. (Kleinbuchstaben beachten!). Du kannst den ... benutzen JsonProperty-Anmerkung um den gewünschten Namen zu erzwingen (beispielsweise @JsonProperty ("UserId"))