json递归查找key对应的值
来源:互联网 发布:知惠是什么意思 编辑:程序博客网 时间:2024/05/21 17:09
public static JsonNode getJsonNodeByKey(Object object, String key) { if (object == null || object == "") return null; Class cls = object.getClass(); if(cls == ObjectNode.class) { ObjectNode o = (ObjectNode)object; if(o.has(key)) return o.findValue(key); for (JsonNode jsonNode : o) { JsonNode tmp = getJsonNodeByKey(jsonNode, key); if( null != tmp) return tmp; } }else if(cls == ArrayNode.class){ ArrayNode arrayNode = (ArrayNode)object; if (arrayNode.has(key)) return arrayNode.get(key); for (JsonNode jsonNode : arrayNode) { JsonNode tmp = getJsonNodeByKey(jsonNode, key); if(null != tmp) return tmp; } }else if(cls == String.class){ try { JsonNode jsonNode = objectMapper.readTree(object.toString()); JsonNode tmp = getJsonNodeByKey(jsonNode, key); if(null != tmp) return tmp; }catch (Exception e) { return null; } }else if(cls == TextNode.class) { JsonNode tmp = getJsonNodeByKey(((TextNode)object).asText(), key); if(null != tmp) return tmp; } return null; }
public static String getValueByKeyFromJson(Object object, String key) {if (object == null || object == "")return null;Object oJson = object;Class<? extends Object> cls = oJson.getClass();if (cls == JSONObject.class) {JSONObject jo = (JSONObject) oJson;if (jo.containsKey(key)) {return jo.getString(key);} for (Object o : jo.values()) {String tmp = getValueByKeyFromJson(o, key);if (!tmp.equals("Not Found") && tmp != null) {return tmp;}}} else if (cls == JSONArray.class) {JSONArray ja = (JSONArray) oJson;int size = ja.size();for (int i = 0; i < size; i++) {Object o = ja.get(i);if (o != null && o != "") {String tmp = getValueByKeyFromJson(o, key);if (!tmp.equals("Not Found") && tmp != null) {return tmp;}}}} else if (cls == String.class) {Object o = null;try {o = JSON.parse((String) oJson);String tmp = getValueByKeyFromJson(o, key);if (!tmp.equals("Not Found") && tmp != null) {return tmp;}} catch (JSONException e) {}}return "Not Found";}
1、第一个用的是jackson,第二个用的是fastjson
阅读全文
0 0
- json递归查找key对应的值
- 按key值查找json数据中对应的值
- js实现javaMap的功能 根据json的key获取json的key对应的值
- 利用map查找对应于key值的mapped value
- 替换Json字符串里key对应的value值
- 递归获取JSON内容的key-value值
- 使用二分查找算法在数组查找随机生成的key对应的值
- json 递归按key取值
- 键盘对应的key值
- 根据key查找对应内容:
- json查找key,json遍历
- 循环获取json中key为变量时所对应的值
- C#检验json对象是否存在对应的KEY
- 如何循环获取html的值,并拼写到json/json,求value所对应key的值
- Gson解析不区分大小写,json中多个key对应同一个bean的key
- 键盘对应的Key
- key对应多值
- 解析json字符串,根据key得到对应的value的方法
- caffe2之operator介绍(上)
- GTest源码剖析(四)——TEST_P宏
- 机器学习实战:K近邻算法(源码分析)
- 设计模式----导论
- cmd命令大全
- json递归查找key对应的值
- pyhon学习笔记--lambda
- Java用户登陆界面
- GTest源码剖析(五)——传入参数分析及InitGoogleTest
- 单链表的各种操作(增删查改)
- Harris角点检测算子
- 【BS学习】牛腩新闻发布系统——设计说明书
- GTest源码剖析(六)——RUN_ALL_TESTS
- 用帝国cms7.2做网站的一些性能优化建议