获取JSON中所有的KEY
采用递归的方式,遍历JSON中所有的KEY。
JSON格式如下:
{"username":"tom","age":18,"address":[{"province":"上海市"},{"city":"上海市"},{"disrtict":"静安区"}]}
处理后,得到的结果如下:
address|province|city|disrtict|username|age
package ai.advance.until;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
public class fastJsonDiff {
    /**
     * 递归读取所有的key
     *
     * @param jsonObject
     */
    public static StringBuffer getAllKey(JSONObject jsonObject) {
        StringBuffer stringBuffer = new StringBuffer();
        Iterator<String> keys = jsonObject.keySet().iterator();// jsonObject.keys();
        while (keys.hasNext()) {
            String key = keys.next();
            stringBuffer.append(key.toString()).append("|");
            if (jsonObject.get(key) instanceof JSONObject) {
                JSONObject innerObject = (JSONObject) jsonObject.get(key);
                stringBuffer.append(getAllKey(innerObject));
            } else if (jsonObject.get(key) instanceof JSONArray) {
                JSONArray innerObject = (JSONArray) jsonObject.get(key);
                stringBuffer.append(getAllKey(innerObject));
            }
        }
        return stringBuffer;
    }
    public static StringBuffer getAllKey(JSONArray json1) {
        StringBuffer stringBuffer = new StringBuffer();
        if (json1 != null ) {
            Iterator i1 = json1.iterator();
            while (i1.hasNext()) {
                Object key = i1.next();
                if (key instanceof  JSONObject) {
                    JSONObject innerObject = (JSONObject) key;
                    stringBuffer.append(getAllKey(innerObject));
                } else if (key instanceof JSONArray) {
                    JSONArray innerObject = (JSONArray) key;
                    stringBuffer.append(getAllKey(innerObject));
                }else{
                }
            }
        }
        return stringBuffer;
    }
    private final static String st1 = "{\"username\":\"tom\",\"age\":18,\"address\":[{\"province\":\"上海市\"},{\"city\":\"上海市\"},{\"disrtict\":\"静安区\"}]}";
    private final static String st2 = "{username:\"tom\",age:18}";
    public static void main(String[] args) {
        System.out.println(st1);
        JSONObject jsonObject1 = JSONObject.parseObject(st1);
        StringBuffer stb = getAllKey(jsonObject1);
        System.err.println(stb);
    }
}
获取JSON中所有的KEY的更多相关文章
- for in 循环获取json中的键(key)与值(value)
		一 .for in 循环 1.获取json中的键(key)与值(value): var data = {name:'张三',age:'20岁',sex:'男'}; for (var a in data ... 
- 通过YAJL获取json中的值
		这里主要是举例说明一下假设通过yajl获取json中的值. 对于array和object来说,获取的方式略有不同,详细能够參考以下的代码. 我仅仅是从网上搜集信息.知道有这么一种方法.假设还有别的方法 ... 
- 获取redis中所有的key,清空整个 Redis 服务器的数据
		获取 redis 中所有的 key 可用使用 *. redis 127.0.0.1:6379> KEYS * Redis Flushall 命令用于清空整个 Redis 服务器的数据(删除所有数 ... 
- 1.4.1	对象与JSON转化     1.4.2	JSON与List集合转化 1.1.1 获取json中的属性 day10-05
		1.1.1 对象与JSON转化 @Test public void toJSON() throws IOException{ Jedis jedis = new Jedis("192.168 ... 
- 转:js获取json中key所对应的value值
		<script type="text/javascript"> getJson('age'); function getJson(key){ var jsonObj={ ... 
- 获取json中字段,判断是否有想要的key
		if(json.containsKey("key")){ String refundSid = json.getString("key"); } 如果也要判断v ... 
- 获取Json中特定的值
		假如我们得到了一个json的数据:json===> {"Head":{"TransCode":"X1009","Tr ... 
- MemCached的工具类。获取cached中的所有key
		package com.ibs.auth.controller; import java.io.UnsupportedEncodingException; import java.util.Date; ... 
- 【Java】java获取json中某个字段
		import com.alibaba.fastjson.JSONObject; public class JsonTest { public static void main(String[] arg ... 
随机推荐
- 【Python之路】异步IO
			线程:CPU基本执行单元,可以与同属一个进程的其他线程共享资源,线程是属于进程的. 进程:资源单元,进程一般由程序.数据集.进程控制块三部分组成.一个进程默认有一个主线程, GIL:用于在进程中对所有 ... 
- [Linux]Ubuntu安装Java详细教程
			环境:Ubuntu16.04 桌面版虚拟机 1.下载安装包:jdk-8u231-linux-x64.tar.gz 链接: https://pan.baidu.com/s/1mmtzKejL1Fd_RQ ... 
- 灰度图像--图像分割 霍夫变换(Hough Transform)--直线
			学习DIP第50天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan ,出于尊重文章作者的劳动,转载请标明出处!文章代码已托管,欢迎共同开发:https://gi ... 
- Vmware CentOS 7自适应屏幕分辨率
- 费马小定理证明    (copy的,自己捋清楚)
			费马小定理:假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p) 证明(copy的百度百科,加点自己的解释) 引理1. 若a,b,c为任意3个整数,m为正整数,且(m,c)=1 ... 
- $\LaTeX$数学公式大全4
			$4\ Standard\ Function\ Names$将英文转化为罗马文$\arccos$ \arccos$\cos$ \cos$\csc$ \csc$\exp$ \exp$\ker$ \ker ... 
- Web存储机制—sessionStorage,localStorage使用方法
			Web存储机制,在这里主要聊有关于Web Storage API提供的存储机制,通过该机制,浏览器可以安全地存储键值对,比使用cookie更加直观.接下来简单的了解如何使用这方面的技术. 基本概念 W ... 
- tp5 多条件查询
			$where['rc_category_id'] = array('eq',$cid); $where['rc_territory_ids'] = ['like', '%'.$tid.'%']; $l ... 
- LC 656. Coin Path 【lock, Hard】
			Given an array A (index starts at 1) consisting of N integers: A1, A2, ..., AN and an integer B. The ... 
- GitHub-Microsoft:sql-server-samples
			ylbtech-GitHub-Microsoft:sql-server-samples 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. https://gi ... 
