您现在的位置是:首页 > java技术交流java技术交流
JsonNode findPath方法详解 JsonNode判断是否为空详解
上善若水2020-09-10 11:52:10【java技术交流】
10522人已围观
简介在使用com.fasterxml.jackson.databind.JsonNode的findPath方法,会用于判断是否是否正确的查找到结果,path()只能查找儿子节点,而findPath则会查找
在使用com.fasterxml.jackson.databind.JsonNode的findPath方法,会用于判断是否是否正确的查找到结果,path()只能查找儿子节点,而findPath则会查找子孙节点,对于层级较多的json使用findPath更加便利!
话不多说直接贴代码,创建JsonNode的过程请忽略.
JSONObject jsonObject = new JSONObject();
jsonObject.put("a", "a");
jsonObject.put("B", "B");
jsonObject.put("C", "C");
jsonObject.put("D", "D");
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("a2", "a2");
jsonObject2.put("B2", "B2");
jsonObject2.put("C2", "C2");
jsonObject2.put("D2", "D2");
jsonObject.put("obj", jsonObject2);
jsonObject.put("arr", Collections.singletonList(jsonObject2));
JsonNode warehouseOrderJsonNode = (JsonNode) YGJson.fromJson(jsonObject.toJSONString(), JsonNode.class);
boolean missingNode1 = warehouseOrderJsonNode.findPath("aaaa").isNull();//false
boolean missingNode2 = warehouseOrderJsonNode.findPath("aaaa").isEmpty();//true
boolean missingNode3 = warehouseOrderJsonNode.findPath("aaaa").isMissingNode();//true
String missingNode4 = warehouseOrderJsonNode.findPath("aaaa").asText();//""
boolean missingNode5 = warehouseOrderJsonNode.findPath("aaaa").isArray();//false
boolean missingNode6 = warehouseOrderJsonNode.findPath("aaaa").isObject();//false
boolean child1 = warehouseOrderJsonNode.findPath("a").isNull();//false
boolean child2 = warehouseOrderJsonNode.findPath("a").isEmpty();//true
boolean child3 = warehouseOrderJsonNode.findPath("a").isMissingNode();//false
String child4 = warehouseOrderJsonNode.findPath("a").asText();//"a"
boolean child5 = warehouseOrderJsonNode.findPath("aaaa").isArray();//false
boolean child6 = warehouseOrderJsonNode.findPath("aaaa").isObject();//false
boolean son1 = warehouseOrderJsonNode.findPath("a2").isNull();//false
boolean son2 = warehouseOrderJsonNode.findPath("a2").isEmpty();//true
boolean son3 = warehouseOrderJsonNode.findPath("a2").isMissingNode();//false
String son4 = warehouseOrderJsonNode.findPath("a2").asText();//"a2"
boolean son5 = warehouseOrderJsonNode.findPath("aaaa").isArray();//false
boolean son6 = warehouseOrderJsonNode.findPath("aaaa").isObject();//false
boolean obj1 = warehouseOrderJsonNode.findPath("obj").isNull();//false
boolean obj2 = warehouseOrderJsonNode.findPath("obj").isEmpty();//false
boolean obj3 = warehouseOrderJsonNode.findPath("obj").isMissingNode();//false
String obj4 = warehouseOrderJsonNode.findPath("obj").asText();//""
boolean obj5 = warehouseOrderJsonNode.findPath("obj").isArray();//false
boolean obj6 = warehouseOrderJsonNode.findPath("obj").isObject();//true
boolean arr1 = warehouseOrderJsonNode.findPath("arr").isNull();//false
boolean arr2 = warehouseOrderJsonNode.findPath("arr").isEmpty();//false
boolean arr3 = warehouseOrderJsonNode.findPath("arr").isMissingNode();//false
String arr4 = warehouseOrderJsonNode.findPath("arr").asText();//""
boolean arr5 = warehouseOrderJsonNode.findPath("arr").isArray();//true
boolean arr6 = warehouseOrderJsonNode.findPath("arr").isObject();//false
将以上方法的findPath()替换为path()后所有的返回值不变.
附上debug的结果图
很赞哦! (21)
相关文章
随机图文
10个笑死人不偿命的笑话,发给你,足以让你笑着过周末了!
1.妻子想让老公早回家,于是规定:晚于23点回家就锁门。第一周奏效,第二周老公又晚归,老婆按制度把门锁了,于是老公干脆不回家了。 老婆郁闷,后经高人指点,修改规定:23点前不回家,我就开着门睡觉。老公大惊,从此准时回家。 可见制度的精髓不在于强制,而在于对被执行者利益的拉动。 2.小鸡问母鸡:可否不用下蛋,带我出去玩啊?母鸡道:不行,我要工作! 是因为你创造价值,淘汰是因为你失去价值。过去php 中??双问号 与?:冒号问号对比
php 中??双问号 与?:冒号问号对比,在phpstorm中使用三元运算符的时候推荐我使用?:代替特此在phpstorm进行了对比. $s1= '' ?: '笑话15则,总有一则逗笑你!
1、地上有一张50元,一张100元,你会捡哪张?答:当然100的那张呗.... 2、在街边报亭买烟,“其他地方都卖21块,为什么你这里要卖23?”我质问老板。 “小伙子,我看你长得帅,收多你两块钱很过分吗?” 这个怎么应付,我得想想!!! 3、高考查成绩的时候,我直接被大专录取了! 于是老爸一高兴,就直接送了辆玛莎拉蒂给我。 开学后我开着玛莎拉蒂上学,室友们第一次见名车。 很激动,纷shiro 匹配md5加密后的密码HashedCredentialsMatcher
shiro 匹配md5加密后的密码,shiro为我们提供好了使用md5规则,同时还可以设置md5的加密次数.我们在SimpleAuthenticationInfo里面就只用将加密后的密码丢进去,shi