我想将下面给出的结构反序列化为给定的Java类

问题描述 投票:0回答:1

我正在尝试使用Jackson读取给定的JSON格式到Student类中,该类包含另一个类Details.java的一组对象

如何进行此解析?

objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
Student student = = new ObjectMapper().readValue(JSON_INPUT, Student.class);

JSON

{

    "studentName": Mikhael,
    "studentID": 251,
    "details": [  
         {"detail1": value1, detail2: value2},
         {"detail1": value3, detail2: value4}
     ] 

}  

Student.java

public class Student {

    private String studentName;
    private int studentID;
    private Set<Details> details;

    public Student(String studentName, Integer studentID, Set<Details> details){
        this.studentName = studentName;
        this.studentID = studentID;
        this.details = details;
    }

}

Details.java

public class Details {

    private String detail1;
    private String detail2;

    public Details(String detail1, String detail2){
        this.detail1 = detail1;
        this.detail2 = detail2;
    }

}


java json jackson
1个回答
0
投票

[如果可能,我会使用gson库。

使用该库,您可以只用一行完成反序列化,就像您先前定义的StudentDetails类具有与以下属性相匹配的属性一样:

Student studentObject = new Gson().fromJson(JSON_INPUT, Student.class);

然后,您需要添加一些吸气剂以获取StudentObject的数据。

© www.soinside.com 2019 - 2024. All rights reserved.