如题,希望将如下格式的JSON数据转化成Java对象。
{
"bList": [
{
"cList": [
{
"stuList": [
{
"age": 18,
"name": "Alice"
},
{
"age": 28,
"name": "Bob"
}
]
},
{
"stuList": [
{
"age": 18,
"name": "Candy"
},
{
"age": 28,
"name": "David"
}
]
}
]
},
{
"cList": [
{
"stuList": [
{
"age": 18,
"name": "张三"
},
{
"age": 28,
"name": "李四"
}
]
},
{
"stuList": [
{
"age": 18,
"name": "王五"
},
{
"age": 28,
"name": "赵六"
}
]
}
]
}
]
}
Java代码
// Step 1: 拿到了JSON格式的数据
String jsonStr = /*千辛万苦拿到的JSON字符串*/;
// Step 2: 转成net.sf.json.JSONObject对象
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
// Step 3: 通过Map指定解析方式:将哪部分JSON数据解析成哪种类型的对象
Map<String,Class<?>> classMap = new HashMap<String, Class<?>>();
// classMap.put("数组",元素类型.class);
classMap.put("bList", B.class); // jsonStr中的bList对应一个数组,数组中每个元素的类型是B.class
classMap.put("cList", C.class); // jsonStr中的cList对应一个数组,数组中每个元素的类型是C.class
classMap.put("stuList", Student.class); // jsonStr中的stuList对应一个数组,数组中每个元素的类型是Student.class
// Step 4: JSON ==> Java对象
A aObj = (A) JSONObject.toBean(jsonObj, A.class, classMap);
// Step 5: 验证一下
System.out.println(aObj);
Maven依赖:https://blog.csdn.net/lanying100/article/details/115369900