關於JsonObject的筆記

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);
相關文章
相關標籤/搜索