您现在的位置是:首页 > java技术交流java技术交流
JsonNode findPath方法详解 JsonNode判断是否为空详解
上善若水2020-09-10 11:52:10【java技术交流】
7446人已围观
简介在使用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)
相关文章
随机图文
Maatwebsite\Excel 读取导入excel转为数组数据显示不全
在laravel中读取excel转换为数组进行数据处理,发现转换为的数组内只有一条记录,其他记录丢失,Maatwebsite\Excel 读取导入excel转为数组数据显示不全,发现网上给出的代码掉了幽默笑话
1、儿子拿着一张破纸,对我说:“爸爸,我有一张藏宝图,我送给你,你给我10块钱好吗?”我拿过来一看,说道:“你这不就是画的咱家吗,怎么就叫藏宝图了,还给我要10块钱。”儿子:“爸爸,你看看用红笔画的地方.”我仔细一看,沙发底下,桌子腿底下……我靠,这逼崽子,这可是老子藏私房钱的地方,我赶紧跟儿子说:“那啥,宝贝儿,我给你50块!”2、师父手拿秘籍,一边读秘籍上的内容一边比划:“springboot博客 mysql数据库表建立
由于个人博客比较简单,前期仅快速建立几张核心的博客数据表,然后的不断完善,先完成前端博客的显示,手动插入若干条测试数据,下面来看看数据表吧!也就简单的文章表,分类表等.数据库sql下载地址:码云地址数逗女生开心的五个经典幽默笑话
1、推销员:先生,买个扩音器吧,跳楼价,才十块。路人:用不着,不买!你拉着我干嘛,再不放手我喊警察了。推销员:警察那么远,听不见的,你买个扩音器喊吧。2、上课睡觉:某生上课时睡觉,被老师发现。老师:“你为什么在上课时睡觉?”该生:“我没睡觉哇!”老师:“那你为什么闭上眼睛?”该生:“我在闭目沉思!”老师:“那你为什么直点头?”该生:“您刚才讲得很有道理!”老师:“那你为什么直流口水?”该生