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":[]}
為什么呢?
uj5u.com熱心網友回復:
你點進去看下HashMap和JSONObject的的toString()方法有什么不同就知道了控制臺輸出或者日志輸出,如果物件沒有重寫toString()方法,輸出類似這種com.xiaoxiao.test.model.Tom@2e5d6d97,物件的全路徑名@hashCode,hashCode為記憶體地址;如果物件重寫了toString()方法,則按照toString()方法輸出。
uj5u.com熱心網友回復:
我的意思是為什么json沒有存盤進去值
uj5u.com熱心網友回復:
我復制你的代碼,存進去了啊,我的輸出是map:
{list=[a, b, c]}
json:
{"list":["a","b","c"]}
uj5u.com熱心網友回復:
你當時輸出的時候是不是這兩行
System.out.println("json:");
System.out.println(json);
在這三行之前啊
list.add("a");
list.add("b");
list.add("c");
順序不能反,否則輸出會是[]
uj5u.com熱心網友回復:
你點進去看下HashMap和JSONObject的的toString()方法有什么不同就知道了
控制臺輸出或者日志輸出,如果物件沒有重寫toString()方法,輸出類似這種com.xiaoxiao.test.model.Tom@2e5d6d97,物件的全路徑名@hashCode,hashCode為記憶體地址;如果物件重寫了toString()方法,則按照toString()方法輸出。
我的意思是為什么json沒有存盤進去值
你當時輸出的時候是不是這兩行
System.out.println("json:");
System.out.println(json);
在這三行之前啊
list.add("a");
list.add("b");
list.add("c");
順序不能反,否則輸出會是[]
順序沒有反,輸出的就是空的,我用的是jdk1.8
uj5u.com熱心網友回復:
服了, 你把list轉入json時, list是空的, 后面在給list添加資料,json當然沒有啊.uj5u.com熱心網友回復:
服了, 你把list轉入json時, list是空的, 后面在給list添加資料,json當然沒有啊.
map里面是參考物件, 物件改變了,內容也會變,但json不一樣.
uj5u.com熱心網友回復:
你點進去看下HashMap和JSONObject的的toString()方法有什么不同就知道了
控制臺輸出或者日志輸出,如果物件沒有重寫toString()方法,輸出類似這種com.xiaoxiao.test.model.Tom@2e5d6d97,物件的全路徑名@hashCode,hashCode為記憶體地址;如果物件重寫了toString()方法,則按照toString()方法輸出。
我的意思是為什么json沒有存盤進去值
你當時輸出的時候是不是這兩行
System.out.println("json:");
System.out.println(json);
在這三行之前啊
list.add("a");
list.add("b");
list.add("c");
順序不能反,否則輸出會是[]
順序沒有反,輸出的就是空的,我用的是jdk1.8
能發下你的代碼里的所有內容嗎,包括import導包,以及fastjson版本
uj5u.com熱心網友回復:
哪個版本的 json 包?fastjson 1.2.47 jdk1.8 親測都有值。
感覺你運行的代碼和你貼的代碼不一樣,
uj5u.com熱心網友回復:
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和json的toString()之前,你可以試一下,樓主
uj5u.com熱心網友回復:
都是存的針對 List<String> list = new ArrayList<>(); 的參考轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/283494.html
標籤:Java SE
上一篇:多執行緒
