bonjour, voici mon modèle de donnée json
Code : Sélectionner tout - Visualiser dans une fenêtre à part
{  "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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?
}