Java 把json對象轉(zhuǎn)成map鍵值對的方法
更新時間:2018年04月13日 08:39:46 作者:caox_nazi
這篇文章主要介紹了java 把json對象中轉(zhuǎn)成map鍵值對的方法,本文的目的是把json串轉(zhuǎn)成map鍵值對存儲,而且只存儲葉節(jié)點的數(shù)據(jù)
。需要的朋友可以參考下
工具方法: 本文的目的是把json串轉(zhuǎn)成map鍵值對存儲,而且只存儲葉節(jié)點的數(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對象數(shù)據(jù)存儲在map以鍵值對的形式存儲,只存儲葉節(jié)點
* @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)濟, 中國人, 中國廣播, 中國文化]}}," +
"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對象轉(zhuǎn)成map鍵值對的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java高效實現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn)
這篇文章主要為大家介紹了Java高效實現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
關(guān)于使用Mybatisplus自帶的selectById和insert方法時的一些問題
這篇文章主要介紹了關(guān)于使用Mybatisplus自帶的selectById和insert方法時的一些問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
解決FontConfiguration.getVersion報空指針異常的問題
這篇文章主要介紹了解決FontConfiguration.getVersion報空指針異常的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Java設(shè)計模式模板方法(Template)原理解析
這篇文章主要介紹了Java設(shè)計模式模板方法(Template)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11

