[Jackson] parsing des valeurs Json dans un tableau
bonjour, voici mon modèle de donnée json
Code:
{ "data": [ { "num": "01000017DC416B01", "active": true, "serial": "0610005910", "can_types":[1, 2,3] }, { "num": "01000017DC416B01", "active": true, "serial": "0610005910", "can_types":[1, 7,2]} ], "age":"10" }
je veut récupérer les 3 premières propriétés du tableau (num, active et serial) plus celle en dehors du tableau age (que j'arrive d'ailleurs à récupérer mais pas celle qui sont dans le tableau.
J'ai créé 2 classes
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyFields {
private String num;
private boolean active;
private String serial;
} |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| @Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyFieldsWrapper {
private List<MyFields> myFields;
private int age;
public List<MyFields> getMyFields() {
return myFields;
}
public void setMyFields(List<MyFields> myFields) {
this.myFields = myFields;
}
} |
Voici mon main dans lequel ma liste d'objets du tableau json n'est jamais récupérée, la valeur retournée est null je n'arrive pas à savoir pourquoi
Code:
1 2 3 4 5 6 7 8 9 10
| public static void main(String arg []){
String json ="{ \"data\": [ { \"num\": \"01000017DC416B01\", \"active\": true, \"serial\": \"0610005910\", \"can_types\":[1, 2,3]\n" +
"}, { \"num\": \"01000017DC416B01\", \"active\": true, \"serial\": \"0610005910\", \"can_types\":[1, 7,2] } ], \"age\":\"10\" }";
ObjectMapper mapper = new ObjectMapper();
MyFieldsWrapper myWrapper = mapper.readValue(json, MyFieldsWrapper.class);
System.out.println(myWrapper.getAge()); // retourne bien 10
System.out.println(myWrapper.getMyFields()); // me retourne null pourquoi?
} |