Am o matrice JSON ca cea prezentată mai jos, pe care trebuie să o serializez în clasa mea. Folosesc Jackson pe proiectul meu.
în matricea JSON anterioară, clientValue
va avea un alt JSON obiect pe el. Cum pot să-mi serializez matricea JSON anterioară în clasa mea Java folosind Jackson?
public class DataRequest {@JsonProperty("clientId")private String clientId;@JsonProperty("clientName")private int clientName;@JsonProperty("clientKey")private String clientKey;@JsonProperty("clientValue")private Map<String, Object> clientValue;//getters and setters}
Nu am folosit Jackson înainte, așa că nu sunt sigur cum pot Utilizați-l pentru serializarea matricei mele JSON în obiecte Java? Folosesc adnotarea lui Jackson aici pentru a serializa lucrurile, dar nu sunt sigur ce va fi următorul meu pas.
Răspunsuri
1 Pentru răspunsul № 1
poate crea o funcție de utilitate este rezolvată mai jos. Poate doriți să modificați funcția de deserializare în funcție de nevoile dvs. de afaceri. În cazul meu, nu am vrut să nu reușesc în proprietăți necunoscute = iv id = „47e8856e0a”
(Falil_on_unknown_properties, false)
iv id = „1254A0b36F”
o poate numi folosind o abordare similară după cum se arată mai jos:
mapJson(clientValueJsonString,new com.fasterxml.jackson.core.type.TypeReference<List<DataRequest>>(){});
1 pentru răspunsul № 2
Puteți încerca @JsonAnyGetter
și @JsonAnySetter
adnotări cu un obiect de clasă interioară. De asemenea, numele clientului trebuie să aibă tipul de șir, nu int.
public class DataRequest {private String clientId;private String clientName;private String clientKey;private ClientValue clientValue;//getters and setters}public class ClientValue {private Map<String, String> properties;@JsonAnySetterpublic void add(String key, String value) {properties.put(key, value);}@JsonAnyGetterpublic Map<String,String> getProperties() {return properties;}}