JSONObject转化多层数组失败
时间: 2023-08-18 13:14:28 浏览: 110
json转对象(java 多级嵌套)
3星 · 编辑精心推荐
在处理多层级的JSON数组时,可以使用以下方法来转换为Java对象。首先,将JSON字符串转换为net.sf.json.JSONObject对象,然后通过Map指定解析方式,将每部分JSON数据解析成对应的对象类型。最后,使用JSONObject.toBean方法将JSON转换为Java对象。
以下是一个示例代码:
```java
// Step 1: 拿到JSON格式的数据
String jsonStr = /* 千辛万苦拿到的JSON字符串 */;
// Step 2: 转换为net.sf.json.JSONObject对象
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
// Step 3: 通过Map指定解析方式
Map<String, Class<?>> classMap = new HashMap<String, 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);
```
请注意,这只是一个示例代码,你需要根据实际情况修改其中的类名和字段名。希望这个方法能够帮助你成功转换多层级的JSON数组为Java对象。\[2\]
#### 引用[.reference_title]
- *1* *3* [JSONObject与各数据类型转换(通用)](https://blog.csdn.net/Li_Chunxiao_/article/details/107757276)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [多层集合嵌套的JSON数据转化成Java对象(net.sf.json.JSONObject的toBean方法)](https://blog.csdn.net/lanying100/article/details/115370702)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文