fastJson和jackson轉json的區別

執筆記憶的空白發表於2015-12-02

首先舉個fastJson和jackson轉json的例子,然後對比兩種的區別



例子1:

{
    "statusCode": 800,
    "returnObj": {
        "hzOrderId": 14,
        "orderId": 2015111311521900000,
        "orderSendPlanId": 67
    }
}

1、jackson-ObjectMapper轉json

上面是一個 json字串,有兩層, 一層是最外面的,一層是returnObj 

這種方式轉換json,特點是相容性高,對於部分特殊字元也能轉換成功。 而且:轉換的時候是逐級轉換,也就是說,無論你json字串有多少層次,他都會轉換成Object或者Map


上面的轉換結果: returnObj裡面也會被轉成Map


2、fastJson轉換,這裡就簡單寫一個轉換

rest= JSON.parseObject(result, JsonRESTResult.class);
HZorder hz = JsonUtils.fromJson(rest.getReturnObj().toString(), HZorder.class);

這種方式轉換,特點:簡單明瞭,但是對於部分特殊字元無法轉換(比如html標籤+檔案特殊符號),還有個特點:他是直接轉換的,而不是逐層轉換。 也就是說,針對例子1的json字串,只會轉換最外層為Object, 至於returnObj, 仍然還是json字串,而不會轉換成Map。當你需要直接用的時候,還需要繼續轉換一次


總結:兩種方法各有千秋,可根據適用場景來決定用哪種, 也可以兩種合用


相關文章