最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中JSON格式反序列化為Map且保證存取順序一致的問題

 更新時(shí)間:2025年06月06日 15:26:41   作者:紫冰芊  
這篇文章主要介紹了Java中JSON格式反序列化為Map且保證存取順序一致的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

做項(xiàng)目涉及兩個(gè)微服務(wù)之間傳數(shù)據(jù)時(shí),需要提供方將Map類型的數(shù)據(jù)序列化為com.alibaba.fastjson.JSONObject,再轉(zhuǎn)化為JSONString,傳給接收方,接收方將String轉(zhuǎn)換為com.alibaba.fastjson.JSONObject,再反序列化為Map,且接收方需要保持存取順序一致。

問題

  • 不能將String轉(zhuǎn)為JSONObject,再強(qiáng)轉(zhuǎn)為LinkedMap,這樣編譯會報(bào)錯(cuò);
  • 也不能將String轉(zhuǎn)為JSONArray,再一個(gè)一個(gè)賦值,組建成LinkedHashMap,還是無序的;
  • 也不能在發(fā)送方發(fā)送對象的toString格式,在接收方將其轉(zhuǎn)換為LinkedHashMap。

解決方法

(1)對于僅有一層對象數(shù)據(jù)內(nèi)部沒有其他對象或內(nèi)部有其他對象但不需要保證內(nèi)部其他對象的存取順序一致。

//發(fā)送方這樣存數(shù)據(jù)
JSONObject map=new JSONObject(true);//關(guān)鍵所在,要設(shè)置為true,否則會亂序
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");

//發(fā)送方將map.toString()傳給接收方

//接收方將從發(fā)送方獲取的String轉(zhuǎn)化為有序的LinkedHashMap
LinkedHashMap<String, String> root=JSON.parseObject(map.toString(), new TypeReference<LinkedHashMap<String, String>>(){});//關(guān)鍵所在,轉(zhuǎn)化為有序的

(2)對于有多層對象數(shù)據(jù),且需要保證內(nèi)部其他對象的存取順序一致。

//發(fā)送方定義多個(gè)JSONObject
JSONObject mapOut = new JSONObject(true);
for () {
    JSONObject mapIn= new JSONObject(true);
    mapIn.put("key1", "value1");
    mapIn.put("key2", "value2");
    mapOut.put("key3", mapIn);
}

//發(fā)送方將mapOut.toString()發(fā)送給接收方

//接收方將String轉(zhuǎn)化為有序的LinkedHashMap且內(nèi)部結(jié)構(gòu)也有序
LinkedHashMap<String, Map<String, Object>> map = JSON.parseObject(mapOut.toString(), new TypeReference<LinkedHashMap<String, Map<String, Object>>>(){}, Feature.OrderedField);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Springboot Thymeleaf模板文件調(diào)用Java類靜態(tài)方法

    Springboot Thymeleaf模板文件調(diào)用Java類靜態(tài)方法

    這篇文章主要介紹了Springboot Thymeleaf模板文件調(diào)用Java類靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2007-09-09
  • Java web開發(fā)中加載圖片路徑的兩種方式

    Java web開發(fā)中加載圖片路徑的兩種方式

    下文給大家介紹基于編譯器idea以及tomcat服務(wù)器開發(fā)的,對Java web開發(fā)加載圖片路徑的兩種方式感興趣的朋友一起看看吧
    2017-07-07
  • Java 中的變量類型

    Java 中的變量類型

    這篇文章主要介紹了Java 中的變量類型,一般包括局部變量、成員變量、類變量,下面文章對這三種內(nèi)容的變量做了一個(gè)詳細(xì)介紹,需要的朋友可以參考一下
    2021-11-11
  • SpringBoot查看項(xiàng)目配置信息的幾種常見方法

    SpringBoot查看項(xiàng)目配置信息的幾種常見方法

    這篇文章主要為大家詳細(xì)介紹了查看Spring Boot項(xiàng)目所有配置信息的幾種方法,包括 Actuator端點(diǎn),日志輸出,代碼級獲取等方式并附帶詳細(xì)步驟和示例,希望對大家有一定的幫助
    2025-04-04
  • Java語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)棧代碼詳解

    Java語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)棧代碼詳解

    這篇文章主要介紹了Java語言實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)棧代碼詳解,簡單介紹了棧的概念,然后分享了線性棧和鏈?zhǔn)綏5腏ava代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 一文詳解Java17中LinkedList類的用法和應(yīng)用場景

    一文詳解Java17中LinkedList類的用法和應(yīng)用場景

    LinkedList 是 Java 集合框架中基于雙向鏈表實(shí)現(xiàn)的類,實(shí)現(xiàn)了 List 和 Deque 接口,本文將為大家介紹一下它在Java 17 中如何更高效的使用吧
    2025-03-03
  • Java 堆內(nèi)存溢出原因分析

    Java 堆內(nèi)存溢出原因分析

    這篇文章主要介紹了Java 堆內(nèi)存溢出原因分析,任何使用過基于 Java 的企業(yè)級后端應(yīng)用的軟件開發(fā)者都會遇到過這種報(bào)錯(cuò),java.lang.OutOfMemoryError:Java heap space。,需要的朋友可以參考下
    2019-06-06
  • 淺談SpringMVC+Spring3+Hibernate4開發(fā)環(huán)境搭建

    淺談SpringMVC+Spring3+Hibernate4開發(fā)環(huán)境搭建

    MVC已經(jīng)是現(xiàn)代Web開發(fā)中的一個(gè)很重要的部分,本文介紹一下SpringMVC+Spring3+Hibernate4的開發(fā)環(huán)境搭建,有興趣的可以了解一下。
    2017-01-01
  • Java中從Integer到Date的轉(zhuǎn)換方法

    Java中從Integer到Date的轉(zhuǎn)換方法

    這篇文章主要介紹了Java中integer怎么轉(zhuǎn)換date,在Java中,如果我們有一個(gè)Integer類型的數(shù)據(jù),想要將其轉(zhuǎn)換為Date類型,本文給大家介紹了實(shí)現(xiàn)方法,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 詳解Spring中使用@within與@target的區(qū)別

    詳解Spring中使用@within與@target的區(qū)別

    這篇文章主要介紹了Spring中使用@within與@target的一些區(qū)別,本文通過項(xiàng)目案例給大家詳細(xì)分析,給大家介紹的非常詳細(xì),代碼簡單易懂,需要的朋友可以參考下
    2021-09-09

最新評論

湖北省| 睢宁县| 普兰县| 两当县| 安化县| 临泉县| 维西| 叙永县| 嘉祥县| 南雄市| 金乡县| 盐城市| 永川市| 兴业县| 九龙城区| 泉州市| 桑植县| 车致| 荔波县| 昭通市| 孙吴县| 铅山县| 将乐县| 三门县| 灌云县| 九龙县| 陇川县| 长顺县| 舒城县| 德兴市| 德惠市| 揭阳市| 水城县| 云浮市| 广西| 横山县| 克山县| 宜城市| 青河县| 禹州市| 阿拉善左旗|