Java 把json對(duì)象轉(zhuǎn)成map鍵值對(duì)的方法
工具方法: 本文的目的是把json串轉(zhuǎn)成map鍵值對(duì)存儲(chǔ),而且只存儲(chǔ)葉節(jié)點(diǎn)的數(shù)據(jù)
maven 引用jar包版本:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
工具類:
package com.baofoo.admin.test;
//import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.json.*;
import java.util.*;
/**
* Created by BF100 on 2018/4/12.
*/
@Slf4j
public class TestByCaoxNew {
@Test
public void test1(){
try{
int a = 1/0;
}catch (Exception e){
log.error("call Exception :{}",e);
e.printStackTrace();
}
System.out.println("come on !!!");
}
@Test
public void test2() throws Exception{
String str = "{\"result\":\"success\",\"message\":\"成功!\"}";
String str2 = "{result:success,message:成功}";
// JSONObject jsStr = JSONObject.parseObject(str);
// System.out.println(jsStr);
JSONObject obj = new JSONObject(str);
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));
}
}
/**
* @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 Exception {
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);
}
}
}
@Test
public void test3() throws Exception{
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));
}
}
}
總結(jié)
以上所述是小編給大家介紹的Java 把json對(duì)象轉(zhuǎn)成map鍵值對(duì)的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JAVA中JSONObject對(duì)象和Map對(duì)象之間的相互轉(zhuǎn)換
- javascript實(shí)現(xiàn)Java中的Map對(duì)象功能的實(shí)例詳解
- 將JSON字符串轉(zhuǎn)換成Map對(duì)象的方法
- Js遍歷鍵值對(duì)形式對(duì)象或Map形式的方法
- js中遍歷Map對(duì)象的簡(jiǎn)單實(shí)例
- js中遍歷Map對(duì)象的方法
- JS自定義對(duì)象實(shí)現(xiàn)Java中Map對(duì)象功能的方法
- js中生成map對(duì)象的方法
- 何時(shí)使用Map來(lái)代替普通的JS對(duì)象
相關(guān)文章
Java ThreadPoolExecutor 線程池的使用介紹
Executors 是一個(gè)Java中的工具類. 提供工廠方法來(lái)創(chuàng)建不同類型的線程池,這篇文章主要介紹了Java ThreadPoolExecutor 線程池的使用介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Java實(shí)現(xiàn)可視化走迷宮小游戲的示例代碼
這篇文章主要介紹了Java如何實(shí)現(xiàn)可視化走迷宮小游戲。本程序適用于java程序員鞏固類與對(duì)象、文件讀取、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對(duì)邏輯能力的鍛煉,需要的可以參考一下2022-11-11
JVM加載class文件的原理機(jī)制實(shí)例詳解
Java是一種具有動(dòng)態(tài)性的解釋型語(yǔ)言,類(class)只有被加載到JVM后才能運(yùn)行,接下來(lái)通過本文給大家介紹JVM加載class文件的原理機(jī)制詳解,感興趣的朋友一起看看吧2022-04-04
詳解SpringBoot和Mybatis配置多數(shù)據(jù)源
本篇文章主要介紹了詳解SpringBoot和Mybatis配置多數(shù)據(jù)源,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05

