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:{中國:{numFound:9,startOffset:0,endOffset:2," +
"suggestion:[中國工商銀行, 中國人民, 中國國際, 中國農(nóng)業(yè), 中國市場, 中國經(jīng)濟(jì), 中國人, 中國廣播, 中國文化]}}," +
"collations:{collation:中國工商銀行}}}";
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)站的支持!
相關(guān)文章
Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn)
這篇文章主要為大家介紹了Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
spring validation多層對(duì)象校驗(yàn)教程
這篇文章主要介紹了spring validation多層對(duì)象校驗(yàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
關(guān)于使用Mybatisplus自帶的selectById和insert方法時(shí)的一些問題
這篇文章主要介紹了關(guān)于使用Mybatisplus自帶的selectById和insert方法時(shí)的一些問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
解決FontConfiguration.getVersion報(bào)空指針異常的問題
這篇文章主要介紹了解決FontConfiguration.getVersion報(bào)空指針異常的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Java設(shè)計(jì)模式模板方法(Template)原理解析
這篇文章主要介紹了Java設(shè)計(jì)模式模板方法(Template)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

