Java、Json轉換方式之三:Fastjson

前面說Jackson是同等框架中最快的,現在要承認自己的錯誤了。強中更有強中手,這不,阿里巴巴整出來一個Fastjson,竟然比Jackson還快。Java序列化在性能上已經是糟糕透頂,看來以後的序列化還是使用json數據比較好。下面是jvm-serialize測試結果:

序列化時間 反序列化時間 大小 壓縮後大小
java序列化 8654 43787 889 541
hessian 6725 10460 501 313
protobuf 2964 1745 239 149
thrift 3177 1949 349 197
avro 3520 1948 221 133
json-lib 45788 149741 485 263
jackson 3052 4161 503 271
fastjson 2595 1472 468 251

這個測試當然不是我做的,參看:http://wenshao.iteye.com/blog/1142031

Fastjson的文檔非常全面,而且API友好,學習地址:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946

這裏也就不詳細講解其使用了,只是舉個例子,看一下Fastjson的強大之處,作爲拋磚引玉:
複製代碼

    Person person = new Person();
    person.setAge(18);
    person.setName("li");
    person.setHappy("finery");
    Map map = new HashMap();
    map.put("age", 18);
    map.put("name", "li");
    List list = new ArrayList();
    list.add(person);
    list.add(map);
    String json = JSON.toJSONString(list, SerializerFeature.UseSingleQuotes);
    // json =
    // [{'age':18,'happy':'finery','name':'li'},{'age':18,'name':'li'}]

    list = JSON.parseArray(json, new Type[] { Person.class, Map.class });
    for (Object object : list) {
        System.out.println(object.toString());
    }
    // 輸出:Person [name=li, age=18, happy=finery]
    // {name=li, age=18}

複製代碼

使用簡單,功能強大,性能卓越,是Fastjson的主要特點。

發佈了5 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章