alibaba fastjson常見問題FAQ

來源:互聯網
上載者:User

標籤:過濾   chm   mat   maven2   sim   highlight   for   end   常用   

English | 中文

1. 怎麼獲得fastjson?

你可以通過如下地方下載fastjson:

  • maven中央倉庫: http://central.maven.org/maven2/com/alibaba/fastjson/
  • Sourceforge.net : https://sourceforge.net/projects/fastjson/files/
  • 在maven中如何配置fastjson依賴 fastjson最新版本都會發布到maven中央倉庫,你可以直接依賴。
<dependency>     <groupId>com.alibaba</groupId>     <artifactId>fastjson</artifactId>     <version>1.2.21</version></dependency>

android版本

<dependency>     <groupId>com.alibaba</groupId>     <artifactId>fastjson</artifactId>     <version>1.1.55.android</version></dependency>
2. fastjson主要的API哪些?

fastjson入口類是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。

package com.alibaba.fastjson;public abstract class JSON {      public static final String toJSONString(Object object);      public static final <T> T parseObject(String text, Class<T> clazz, Feature... features);}

序列化:

String jsonString = JSON.toJSONString(obj);

還原序列化:

VO vo = JSON.parseObject("...", VO.class);

泛型還原序列化:

import com.alibaba.fastjson.TypeReference;List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});
3. 哪裡找fastjson的使用例子

fastjson的使用例子看這裡:https://github.com/alibaba/fastjson/wiki/Samples-DataBind

4. fastjson的效能如何?

fastjson是目前java語言中最快的json庫,比自稱最快的jackson速度要快,第三方獨立測試結果看這裡:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。

自行做效能測試時,關閉循環參考檢測的功能。

JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect)VO vo = JSON.parseObject("...", VO.class, Feature.DisableCircularReferenceDetect)

這裡有jackson作者cowtowncoder等人對fastjson的效能評價:https://groups.google.com/forum/#!topic/java-serialization-benchmarking/8eS1KOquAhw

5. fastjson效能比gson怎樣?

fastjson比gson快大約6倍,測試結果上這裡:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。gson的g可能是“龜”拼音的縮寫,龜速的json庫。

6. fastjson可以運行在android上嗎?

fastjson有專門的for android版本,去掉不常用的功能。jar占的位元組數更小。git branch地址是:https://github.com/alibaba/fastjson/tree/android 。

7. fastjson序列化的需要像json-lib一樣配置java bean的序列化嗎?

不需要,fastjson的序列化和還原序列化都不需要做特別配置,唯一的要求是,你序列化的類符合java bean規範。

8. fastjson如何處理日期

fastjson處理日期的API很簡單,例如:

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")

使用ISO-8601日期格式

JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);

全域修改日期格式

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);

還原序列化能夠自動識別如下日期格式:

  • ISO-8601日期格式
  • yyyy-MM-dd
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • 毫秒數字
  • 毫秒數字字串
  • .NET JSON日期格式
  • new Date(198293238)
9. 如何定製序列化?

你可以使用SimplePrePropertyFilter過濾欄位,詳細看這裡:https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6%BB%A4%E5%B1%9E%E6%80%A7

關於定製序列化,詳細的介紹看這裡:https://github.com/alibaba/fastjson/wiki/%E5%AE%9A%E5%88%B6%E5%BA%8F%E5%88%97%E5%8C%96

10. 當對象存在引用時,序列化後的結果瀏覽器不支援,怎麼辦?

使用SerializerFeature.DisableCircularReferenceDetect特性關閉引用檢測和產生。例如:

String  jsonString = JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect);
11. IE 6不支援JSON帶中文字串,要怎麼處理?

fastjson提供了BrowserCompatible這個配置,開啟之後,所有的中文都會序列化為\uXXXX這種格式,位元組數會多一些,但是能相容IE 6。

String  jsonString = JSON.toJSONString(obj, SerializerFeature.BrowserCompatible);
12. fastjson 如何處理超大對象和超大JSON文本

fastjson提供了Stream API,詳細看這裡 https://github.com/alibaba/fastjson/wiki/Stream-api

13. 使用@JSONField定製序列化

fastjson提供了使用Annotation定製序列化和還原序列化的功能。https://github.com/alibaba/fastjson/wiki/JSONField

14. 將對象中的空值輸出

預設情況下fastjson不輸出對象的空值的,如果你需要輸出空值,看這裡 https://github.com/alibaba/fastjson/wiki/WriteNull_cn

 

from: https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

alibaba fastjson常見問題FAQ

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.