62,627
社区成员
发帖
与我相关
我的任务
分享JSONObject json = new JSONObject();
Map<String, Object> map = new HashMap<>();
List<String> list = new ArrayList<>();
json.put("list",list);
map.put("list",list);
list.add("a");
list.add("b");
list.add("c");
System.out.println("map:");
System.out.println(map);
System.out.println("json:");
System.out.println(json);
输出结果:
map:
{list=[a, b, c]}
json:
{"list":[]}
楼主是怎么办到的?我这里存进去了。
[/quote]
是这样的,json-lib-2.4-jdk15这个json包底层对传入的list最终使用了JSONArray存储的,而且是new了一个JSONArray去接受你传入的list中的所有元素,所以当你传入一个list之后,后续对这个list做的所有操作,不会同步给JSONObject中的JSONArray,所以最终输出的是空集合,你看下源码就知道了,JSONArray.class的764行。
两种修改方案:1、换成阿里巴巴的fastjson包,2、在list塞入json之前就需要给list添加所需的元素。
