gpt4 book ai didi

Java将json对象转换为map键值对案例详解

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java将json对象转换为map键值对案例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

  本文的目的是把json串转成map键值对存储,而且只存储叶节点的数据 。

  比如json数据如下:

  {responseHeader:{status:0,QTime:0},spellcheck:{suggestions:{中国:{numFound:9,startOffset:0,endOffset:2,suggestion:[中国工商银行, 中国人民, 中国国际, 中国农业, 中国市场, 中国经济, 中国人, 中国广播, 中国文化]}},collations:{collation:中国工商银行}}} 。

  如果存储在键值对中,变成如下:

Java将json对象转换为map键值对案例详解

  这样通过map,可以直接获取对应键的数据。具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import org.apache.solr.client.solrj.SolrServerException;
 
import org.json.*;
 
import java.io.IOException;
import java.util.*;
 
/**
  * @Author:sks
  * @Description:
  * @Date:Created in 16:18 2017/12/18
  * @Modified by:
  **/
public class JsontoMap {
 
     /**
      * @Author:sks
      * @Description:把json对象数据存储在map以键值对的形式存储,只存储叶节点
      * @Date:
      */
     private static void JsonToMap(Stack<JSONObject> stObj, Map<String, Object> resultMap)  throws SolrServerException, IOException {
 
         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);
             }
         }
     }
     public static void main(String []args) throws SolrServerException, IOException{
         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));
         }
 
     }
//    输出:
//    endOffset:2
//    startOffset:0
//    QTime:0
//    numFound:9
//    suggestion:["中国工商银行","中国人民","中国国际","中国农业","中国市场","中国经济","中国人","中国广播","中国文化"]
//    collation:中国工商银行
//    status:0
 
}

到此这篇关于Java将json对象转换为map键值对案例详解的文章就介绍到这了,更多相关Java将json对象转换为map键值对内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/shaosks/p/8058336.html 。

最后此篇关于Java将json对象转换为map键值对案例详解的文章就讲到这里了,如果你想了解更多关于Java将json对象转换为map键值对案例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com