/ / Jackson konwertuje ciąg json na obiekt Java w obiekcie domyślnym - java, json, jackson

Jackson konwertuje z ciągu JSON na obiekt Javy w obiekt domyślny - java, json, jackson

Usiłuję przekonwertować ciąg json na obiekt Java. Wszystko idzie dobrze, obiekt jest tworzony, ale jego właściwości nie są przekazywane. Powoduje to pusty (domyślny) obiekt. Czego mi brakuje?

Oto model obiektu Java:

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
}

Oto mój fragment kodu:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
T returnValue = mapper.readValue(sb.toString(), clazz);

Tutaj clazz to nazwa klasy, którą muszę przekonwertować na (w tym przypadku LetterCounts) sb to StringBuilder, który wygląda następująco:

{"$id":"1","UserId":"users_1","Total":30,"UnRead":13,"Flagged":17,"Deleted":false}

Jeśli użyję gson do deserializacji, działa dobrze. Ale muszę użyć konwertera jackson.

Odpowiedzi:

0 dla odpowiedzi № 1

Wydaje się, że jest problem z nazewnictwem zmiennych. Ponieważ pominąłeś metody getter i setter, zakładam, że one wyglądają setUserId(String UserId), getUserId()itd. Jackson oczekuje (zgodnie z konwencjami nazewnictwa Java), że pola w JSON są nazwane userIditd. (zwróć uwagę na małe litery!). Możesz użyć Adnotacja JsonProperty wymusić żądaną nazwę (np. @JsonProperty („UserId”)).