fastjson解析數據后導致順序改變問題


開發過程中遇到一個問題,服務器經過排序返回后的字符串數據使用fastjson解析后,數據順序發生變化,引起業務異常。

解決辦法:

1、解析時增加參數不調整順序

JSONObject respondeBodyJson = JSONObject.parseObject(jsonStr, Feature.OrderedField);

2、初始化json對象為有序對象:

JSONObject retObj = new JSONObject(true);

這樣生成的json對象就與放入數據時一致。

3、使用Gson解析

JsonObject returnData = new JsonParser().parse(replyString).getAsJsonObject();

 

json字符串序列化后如何保持順序不變

使用阿里巴巴的fastjson對json字符串進行序列化,序列化之后發現順序發生了改變,導致之后業務出現問題。

解決方法:

LinkedHashMap<String, Object> json = JSON.parseObject(message,LinkedHashMap.class, Feature.OrderedField);
JSONObject jsonObject=new JSONObject(true);
jsonObject.putAll(json);
先將字符串轉化為LinkedHashMap,然后定義有序的json對象,將map對象復制到json對象中即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM