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

Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解

 更新時(shí)間:2021年09月01日 09:46:53   作者:shaomine  
這篇文章主要介紹了Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

  本文的目的是把json串轉(zhuǎn)成map鍵值對(duì)存儲(chǔ),而且只存儲(chǔ)葉節(jié)點(diǎn)的數(shù)據(jù)

  比如json數(shù)據(jù)如下:

  {responseHeader:{status:0,QTime:0},spellcheck:{suggestions:{中國(guó):{numFound:9,startOffset:0,endOffset:2,suggestion:[中國(guó)工商銀行, 中國(guó)人民, 中國(guó)國(guó)際, 中國(guó)農(nóng)業(yè), 中國(guó)市場(chǎng), 中國(guó)經(jīng)濟(jì), 中國(guó)人, 中國(guó)廣播, 中國(guó)文化]}},collations:{collation:中國(guó)工商銀行}}}

  如果存儲(chǔ)在鍵值對(duì)中,變成如下:

  這樣通過(guò)map,可以直接獲取對(duì)應(yīng)鍵的數(shù)據(jù)。具體代碼如下:

import org.apache.solr.client.solrj.SolrServerException;

import org.json.*;

import java.io.IOException;
import java.util.*;

/**
 * @Author:sks
 * @Description:
 * @Date:Created in 16:18 2017/12/18
 * @Modified by:
 **/
public class JsontoMap {

    /**
     * @Author:sks
     * @Description:把json對(duì)象數(shù)據(jù)存儲(chǔ)在map以鍵值對(duì)的形式存儲(chǔ),只存儲(chǔ)葉節(jié)點(diǎn)
     * @Date:
     */
    private static void JsonToMap(Stack<JSONObject> stObj, Map<String, Object> resultMap)  throws SolrServerException, IOException {

        if(stObj == null && stObj.pop() == null){
            return ;
        }
        JSONObject json = stObj.pop();
        Iterator it = json.keys();
        while(it.hasNext()){
            String key = (String) it.next();
            //得到value的值
            Object value = json.get(key);
            //System.out.println(value);
            if(value instanceof JSONObject)
            {
                stObj.push((JSONObject)value);
                //遞歸遍歷
                JsonToMap(stObj,resultMap);
            }
            else {
                resultMap.put(key, value);
            }
        }
    }
    public static void main(String []args) throws SolrServerException, IOException{
        String jsonStr ="{responseHeader:{status:0,QTime:0},spellcheck:{suggestions:{中國(guó):{numFound:9,startOffset:0,endOffset:2," +
                "suggestion:[中國(guó)工商銀行, 中國(guó)人民, 中國(guó)國(guó)際, 中國(guó)農(nóng)業(yè), 中國(guó)市場(chǎng), 中國(guó)經(jīng)濟(jì), 中國(guó)人, 中國(guó)廣播, 中國(guó)文化]}}," +
                "collations:{collation:中國(guó)工商銀行}}}";
        JSONObject obj = new JSONObject(jsonStr);
        Stack<JSONObject> stObj = new Stack<JSONObject>();
        stObj.push(obj);
        Map<String, Object> resultMap =new HashMap<String, Object>();
        JsonToMap(stObj,resultMap);
        Set<String> keys = resultMap.keySet();
        for (String key:keys){
            System.out.println(key+":"+resultMap.get(key));
        }

    }
//    輸出:
//    endOffset:2
//    startOffset:0
//    QTime:0
//    numFound:9
//    suggestion:["中國(guó)工商銀行","中國(guó)人民","中國(guó)國(guó)際","中國(guó)農(nóng)業(yè)","中國(guó)市場(chǎng)","中國(guó)經(jīng)濟(jì)","中國(guó)人","中國(guó)廣播","中國(guó)文化"]
//    collation:中國(guó)工商銀行
//    status:0

}

到此這篇關(guān)于Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解的文章就介紹到這了,更多相關(guān)Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot健康檢查監(jiān)控全過(guò)程

    springboot健康檢查監(jiān)控全過(guò)程

    文章介紹了Spring Boot如何使用Actuator和Micrometer進(jìn)行健康檢查和監(jiān)控,通過(guò)配置和自定義健康指示器,開(kāi)發(fā)者可以實(shí)時(shí)監(jiān)控應(yīng)用組件的狀態(tài),Micrometer支持多種監(jiān)控系統(tǒng),如Prometheus,而Grafana則用于可視化監(jiān)控?cái)?shù)據(jù),文章還提供了配置示例和常見(jiàn)問(wèn)題解決方案
    2025-01-01
  • javabean servlet jsp實(shí)現(xiàn)分頁(yè)功能代碼解析

    javabean servlet jsp實(shí)現(xiàn)分頁(yè)功能代碼解析

    這篇文章主要為大家詳細(xì)解析了javabean servlet jsp實(shí)現(xiàn)分頁(yè)功能代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)

    Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī)

    這篇文章主要為大家詳細(xì)介紹了Java項(xiàng)目實(shí)現(xiàn)模擬ATM機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Java數(shù)組的定義與使用

    Java數(shù)組的定義與使用

    數(shù)組是有序的元素序列,若將有限個(gè)類(lèi)型相同的變量的集合命名,那么這個(gè)名稱(chēng)為數(shù)組名。本文通過(guò)代碼示例詳細(xì)介紹了Java數(shù)組的定義和使用,對(duì)學(xué)習(xí)或工作有一定的幫助,需要的小伙伴歡迎閱讀
    2023-04-04
  • Java面試題之HashMap 的 hash 方法原理是什么

    Java面試題之HashMap 的 hash 方法原理是什么

    那天,小二去蔚來(lái)面試,面試官老王一上來(lái)就問(wèn)他:HashMap 的 hash 方法的原理是什么?當(dāng)時(shí)就把裸面的小二給蚌埠住了,這篇文章將詳細(xì)解答該題目
    2021-11-11
  • Java?Cookie與Session實(shí)現(xiàn)會(huì)話跟蹤詳解

    Java?Cookie與Session實(shí)現(xiàn)會(huì)話跟蹤詳解

    session的工作原理和cookie非常類(lèi)似,在cookie中存放一個(gè)sessionID,真實(shí)的數(shù)據(jù)存放在服務(wù)器端,客戶(hù)端每次發(fā)送請(qǐng)求的時(shí)候帶上sessionID,服務(wù)端根據(jù)sessionID進(jìn)行數(shù)據(jù)的響應(yīng)
    2022-11-11
  • SpringCloud環(huán)境搭建過(guò)程之Rest使用小結(jié)

    SpringCloud環(huán)境搭建過(guò)程之Rest使用小結(jié)

    這篇文章主要介紹了SpringCloud環(huán)境搭建之Rest使用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Java HashMap兩種簡(jiǎn)便排序方法解析

    Java HashMap兩種簡(jiǎn)便排序方法解析

    這篇文章主要介紹了Java HashMap兩種簡(jiǎn)便排序方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決

    Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決

    這篇文章主要介紹了Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java中的分布式鎖與同步鎖使用詳解

    Java中的分布式鎖與同步鎖使用詳解

    這篇文章主要介紹了Java中的分布式鎖與同步鎖使用詳解,在分布式系統(tǒng)中,由于存在多個(gè)節(jié)點(diǎn)并行執(zhí)行任務(wù),可能會(huì)出現(xiàn)競(jìng)爭(zhēng)條件和數(shù)據(jù)不一致的問(wèn)題,分布式鎖通過(guò)約束同一時(shí)刻只有一個(gè)節(jié)點(diǎn)能夠獲得鎖的方式,確保了對(duì)共享資源的獨(dú)占訪問(wèn),需要的朋友可以參考下
    2023-07-07

最新評(píng)論

满洲里市| 五台县| 定兴县| 吉安市| 伽师县| 内乡县| 朝阳市| 碌曲县| 稷山县| 娱乐| 元朗区| 策勒县| 鹤庆县| 息烽县| 泸定县| 淳安县| 浦城县| 修水县| 开封县| 周宁县| 乌苏市| 沙田区| 博兴县| 荃湾区| 樟树市| 八宿县| 常山县| 赤水市| 桦甸市| 湖北省| 专栏| 海阳市| 南和县| 潍坊市| 鄯善县| 彭山县| 河津市| 宣城市| 镇平县| 博白县| 綦江县|