fastjson——json工具庫

fastjson

alibaba fastjson是阿里巴巴公司開源維護的一個處理json格式數據的java工具庫。java

功能特性:git

  • 數據綁定databind (json string <--> java object, JSON <--> java object)
  • 保持單一對象。序列化時相同的java對象引用只會在一個地方序列化一次,另外的引用地方以特殊的引用表述,反序列化後保證了與序列化以前單一java對象的數據引用視圖。
  • ……

json中基本類型(數字、字符串、布爾等標量)的容器有兩種,對象和數組,在fastjson中分別對應類JSONObjectJSONArray,他們有共同父類JSON。json對象是鍵值對集合,相應的JSONObject蘊含鍵值對集,實現了接口Map<String,Object>;json數組是元集合,相應的JSONArray實現了接口List<Object>github

JSON類中還包含各類JSON, java Object, String之間的相互轉換工具函數。json

  • JSON.toJSONString(Object,SerializeConfig=SerializeConfig.globalInstance,...)函數的功能是將java對象序列化爲json字符串。SerializeConfig參數是關於序列化的配置,默認使用全局共享實例SerializeConfig.globalInstance。SerializeConfig可經過.config(Class<?> clazz, SerializerFeature feature, boolean value)爲給定類打開/關閉多種序列化特性,全部特性在枚舉SerializerFeature中。對於java bean(或全部將轉換爲json字符串的java對象),配置特性WriteMapNullValue可控制null值字段是否須要序列化出。數組

  • JSON.toJSON(Object,SerializeConfig=SerializeConfig.globalInstance)將java bean對象轉換爲JSONObject(Map對象)。須要注意的是,儘管該函數接受SerializeConfig,且不論WriteMapNullValue特性是否關閉,轉換出的JSONObject對象都會包含java bean的null值字段,也就說SerializeConfig的WriteMapNullValue特性對於轉換爲JSONObject無用,但對於轉換爲字符串管用,同時在觀察轉爲JSON.toJSON中SerializeConfig的WriteMapNullValue特性是否有用時需注意不能以System.out.println(JSONObject)打印輸出來觀察,由於其輸出已調用JSONObject.toString將JSONObject對象轉爲了json字符串,轉換爲json string的過程涉及了WriteMapNullValue特性。jvm

各jvm序列化器(包含數個json庫)性能對比結果見 https://github.com/eishay/jvm-serializers/wiki函數

相關文章
相關標籤/搜索