复杂的JSON怎么转换为JavaBean

{"data":{"Student":[{"studentName":"lily","studentAge":12}]}}我想从中获取studentName我用newTy... {"data": {"Student": [{"studentName": "lily","studentAge": 12}]}} 我想从中获取studentName 我用new TypeReference<T>()形式还是获取不到 展开
 我来答
小朋39
2019-02-26 · TA获得超过134个赞
知道小有建树答主
回答量:194
采纳率:66%
帮助的人:34.4万
展开全部

必先创建一个java bean 

public class Student {
private String studentName;
private int studentAge;
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
@Override
public String toString() {
return "Student [studentName=" + studentName + ", studentAge=" + studentAge + "]";
}

}

添加fastjson 相关依赖,如果是maven 工程pom 添加

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.56</version>
</dependency>

转换过程如下:

String jsonStr = "{\"data\":{\"Student\":[{\"studentName\":\"lily\",\"studentAge\":12}]}}";
// 先转换为map
Map map = (Map)JSONObject.parse(jsonStr);
Map studentMap  = (Map)map.get("data");
// Student 后面对应一个对象数组。转换方式如下。
ArrayList<Student> parseObject = JSON.parseObject(studentMap.get("Student").toString(),new TypeReference<ArrayList<Student>>(){});
System.out.println(parseObject);
鞠婧祎老婆柠祎
2019-02-26 · TA获得超过727个赞
知道小有建树答主
回答量:2416
采纳率:67%
帮助的人:413万
展开全部
直接用fastjson解析json数组即可,无需转换成bean
更多追问追答
追问
但是我就是想转为对象啊方便管理啊
追答
定义bean里面的层级按照json结构就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式