博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 把json对象中转成map键值对
阅读量:7087 次
发布时间:2019-06-28

本文共 2320 字,大约阅读时间需要 7 分钟。

  相关:

 

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

  比如json数据如下:

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

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

  

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

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
stObj, Map
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
stObj = new Stack
(); stObj.push(obj); Map
resultMap =new HashMap
(); JsonToMap(stObj,resultMap); Set
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}

   

  

转载于:https://www.cnblogs.com/shaosks/p/8058336.html

你可能感兴趣的文章
C语言 · 寂寞的数
查看>>
android Menu 笔记
查看>>
Apache2.2和Apache2.4中httpd.conf配置文件 权限的异同
查看>>
error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】
查看>>
小tips:JS之break,continue和return这三个语句的用法
查看>>
【Java】Java_09 类型转换
查看>>
AndroidStudio gradle配置
查看>>
poj3067 Japan(树状数组)
查看>>
[java面试]关于多态性的理解
查看>>
常见的MIME类型
查看>>
Leetcode_Wildcard Matching
查看>>
docker 私有仓库简易搭建
查看>>
WCF系列教程之客户端异步调用服务
查看>>
P1201 [USACO1.1]贪婪的送礼者Greedy Gift Givers
查看>>
Android自带的分享功能案例
查看>>
Android广播机制分析
查看>>
Android ADB工具-截图和录制视频(五)
查看>>
PHP/Javascript 数组定义 及JSON中的使用 ---OK
查看>>
php中urldecode()和urlencode()起什么作用啊
查看>>
UVA 11542 Square 高斯消元 异或方程组求解
查看>>