您现在的位置是:首页 > java技术交流java技术交流
JsonNode findPath方法详解 JsonNode判断是否为空详解
上善若水2020-09-10 11:52:10【java技术交流】 10214人已围观
简介在使用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)
相关文章
随机图文
-
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
怎么跟女生聊天
关于跟女生聊什么,这个千古难题困扰了无数男同学,今天我带着使命来拯救各位!首先大家想思考一下,你为什么没有话题跟女生聊?是自己直男吗?还是自己太过内向?统统都不是!!!最重要的原因就是你肚子里没有货! -
音乐人能看得懂的音乐笑话集锦
1.脱帽和戴帽一位意大利年轻作曲家,有一次请罗西尼听他演奏新作。罗西尼在听的时候,一连好几次把自己的帽子脱下戴上,戴上又脱下。年轻作曲家演奏结束后,问他为什么这样脱帽戴帽的。罗西尼回答说:“我有个习惯,每逢遇到老相识,总要脱帽招呼一下。”2.另一部好一个十分自信的青年人夹着两大本乐谱,来找罗西尼。年轻人:“指挥答应演奏我的两首交响乐中的一首,我想让您听一下哪一首 -
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。