Java 把json对象转成map键值对的方法
发布于 2020-8-18|
复制链接
摘记: 工具方法: 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据maven 引用jar包版本:
```java
json
..
工具方法: 本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据maven 引用jar包版本:
```java
json
20090211
```
工具类:
```java
package ;
//import ;
import .slf4j.Slf4j;
import ;
import .*;
import .*;
/**
* Created by BF100 on 2018/4/12.
*/
@Slf4j
public class TestByCaoxNew {
@Test
public void test1(){
try{
int a = 1/0;
}catch (Exception e){
("call Exception :{}",e);
();
}
("come on !!!");
}
@Test
public void test2() throws Exception{
String str = "{\"result\":\"success\",\"message\":\"成功!\"}";
String str2 = "{result:success,message:成功}";
// JSONObject jsStr = (str);
// (jsStr);
JSONObject obj = new JSONObject(str);
Stack stObj = new Stack();
(obj);
Map resultMap =new HashMap();
JsonToMap(stObj,resultMap);
Set keys = ();
for (String key:keys){
(key+":"+(key));
}
}
/**
* @Author:sks
* @Description:把json对象数据存储在map以键值对的形式存储,只存储叶节点
* @Date:
*/
private static void JsonToMap(Stack stObj, Map resultMap) throws Exception {
if(stObj == null && () == null){
return ;
}
JSONObject json = ();
Iterator it = ();
while(()){
String key = (String) ();
//得到value的值
Object value = (key);
//(value);
if(value instanceof JSONObject)
{
((JSONObject)value);
//递归遍历
JsonToMap(stObj,resultMap);
}
else {
(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 stObj = new Stack();
(obj);
Map resultMap =new HashMap();
JsonToMap(stObj,resultMap);
Set keys = ();
for (String key:keys){
(key+":"+(key));
}
}
}
```