JsonObject繼承與Jsonhtml
JSONArray中對象的順序是不會變化的,也就是put進去的時候是什麼順序,取的時候就是什麼順序。java
https://blog.csdn.net/weixin_39214304/article/details/80652931json
JSONObject put數據以後,排序會發生變化,由於jsonobject內部是經過hashmap來實現的,會無序,若是想要變成有序,ui
能夠經過下面方法來實現,這種對於加密來講順序實在過重要;加密
當json字符串須要轉爲json對象時, 通常用這個JSON.parseObject(aaa),可是這個方法可能致使順序變亂,spa
用下面的方法能夠避免這種狀況,.net
LinkedHashMap<String,String> requestObject = JSON.parseObject(aaa,LinkedHashMap.class,Feature.OrderedField);code
而後再將requestObject 轉爲jsonhtm
JSONObject jsonObject = new JSONObject(true);這個true的做用是:後面加入的參數,都是是有序的,不加true默認是無序的https://blog.csdn.net/shi0299/article/details/52515355 jsonObject.putAll(jsonMap);
jsonobject和hashmap互轉對象
HashMap<String,String> abc=JSON.parseObject(testparams,HashMap.class);
jsonobject轉map見連接https://www.cnblogs.com/jpfss/p/8625526.html
JSON.parseObject(String str)和JsonObject.parseObject(String str)是沒有區別的,調用的都是系統一個方法,都是把字符串轉爲jsonobject對象
JSON.parseObject(String str)是將str轉化爲相應的JSONObject對象,其中str是「鍵值對」形式的json字符串,轉化爲JSONObject對象以後就可使用其內置的方法,進行各類處理了。
根據源碼顯示:JSON是一個抽象類,JSON中有一個靜態方法parseObject(String text),將text解析爲一個JSONObject對象並返回;JSONObject是一個繼承自JSON的類,當調用JSONObject.parseObject(result)時,會直接調用父類的parseObject(String text)。因此二者沒什麼區別,一個是用父類去調用父類本身的靜態的parseObject(String text),一個是用子類去調用父類的靜態parseObject(String text),二者調的是同一個方法;
JsonObject.parseObject(String str)和JSONObject.fromObject(jsonStr);區別
功能是差很少的,導入的類不一樣而已;
雖然都是返回JSONObject,可是區別仍是比較大的
JSONObject.parseObject(a); 這個方法須要導入import com.alibaba.fastjson.JSONObject; a要求是json字符串
JSONObject.fromObject(b); 這個方法須要導入import net.sf.json.JSONObject; b是java對象
還有就是
JsonObject的tostring()和tojsonString()的區別:首先2個都是將jsonobject對象轉爲json字符串.實際上JsonObject的tostring()內部調的仍是tojsonString(),同一個方法;
還有就是JSON.toJSONString(js)和JsonObject的tojsonString()區別:
JSON.toJSONString(js)是將別的對象轉換爲json字符串,好比map對象,而JsonObject的tojsonString()的方法,是隻針對JsonObject的對象的;
好比:
JSONObject js=new JSONObject();
js.put("fads", "fgsd");
String a=js.toJSONString();
HashMap<String, String> hm=
new
HashMap<>();
hm.put(
"張三"
,
"李四"
);
hm.put(
"uik"
,
"rfe"
);
System.out.println(hm.toString());
String a=JSON.toJSONString(hm);
System.out.println(a);