您现在的位置是:首页 > java技术交流java技术交流
JsonNode findPath方法详解 JsonNode判断是否为空详解
上善若水2020-09-10 11:52:10【java技术交流】 10162人已围观
简介在使用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)
相关文章
随机图文
-
哄老婆开心的笑话,爆笑小笑话,逗女友开心
1、开学第一天我就把同桌打了一顿,老师说要我叫家长。我说:没事,我自己一个人就能打赢他!2、一同学发说说:“请问一下,学校军训的枪是自己带还是学校发啊?在线等。。。”我在下面回复道:“都是自己带的,我家没有,你家要是枪多的话,帮我带一把!”3、老婆不知为何突然生气骂我,我哄了半天她才冷静下来问:“你现在知道你错在哪里了吗?”我怒道:“你什么意思?难道我没有错就不能被你骂了?”4、晚上和 -
PHP8.3新特性 PHP新版特性总结
PHP8.3新特性类型化类常量官方文档地址:https://www.php.net/releases/8.3/zh.php被const修饰的常量不允许改变,新版本终于修复1.类型化类常量旧版再c -
PHP8.2新特性 弃用动态属性,更加严谨
PHP8.2新特性弃用动态属性,更加严谨,动态属性的创建已被弃用,以帮助避免错误和拼写错误,除非该类通过使用#[\AllowDynamicProperties]属性来选择。stdClass允许 -
让人捧腹大笑的笑话,专治各种不开心
1.本想对男神来个回眸一笑,可未曾料到天太冷,笑出了一个鼻涕泡儿。 2.每次别人问我路我都瞎指的,第一是因为我根本不认路,第二是为了给世人一个教训:不要随便相信长得好看的人。 3.高中老师:知不知道现在猪肉为什么这么贵?学生:不知道。老师:猪都坐到这里来了,能不贵吗? 4.最近出门不要穿裙子,容易被撩,天是好天,风不正经。 5.司机眼里只有两种人,比自己开的快的是傻逼,比自己开得慢的是菜鸟