Java 把json对象转成map键值对的方法
程序员文章站
2023-12-05 22:09:10
工具方法: 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据
maven 引用jar包版本:
...
工具方法: 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据
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对象数据存储在map以键值对的形式存储,只存储叶节点 * @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:[中国工商银行, 中国人民, 中国国际, 中国农业, 中国市场, 中国经济, 中国人, 中国广播, 中国文化]}}," + "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)); } } }
总结
以上所述是小编给大家介绍的java 把json对象转成map键值对的方法,希望对大家有所帮助