首页 > 其他分享 >JsonPath 简单使用

JsonPath 简单使用

时间:2023-05-04 11:12:36浏览次数:44  
标签:.. read 简单 json JsonPath 数组 使用 表达式

1.JsonPath的介绍

JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。

JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。

2.导入依赖

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.4.0</version>
</dependency>

3.操作符介绍

操作 说明
$ 查询根元素。这将启动所有路径表达式。
@ 当前节点由过滤谓词处理。
* 通配符,必要时可用任何地方的名称或数字。
.. 深层扫描。 必要时在任何地方可以使用名称。
. 点,表示子节点
['' (, '')] 括号表示子项
[ (, )] 数组索引或索引
[start:end] 数组切片操作
[?()] 过滤表达式。 表达式必须求值为一个布尔值。

4.使用案例

json示例
{
   "A":"a123",
   "B":{
   		"A":"a258",
   	    "C":"c123",
        "M":{
            "H":"h123",
            "O":147
        }
   },
   "D":{
   		"B":111,
   		"W":11122
   }	

}
$..A 取出所有key为A的 值

代码案例

// 取出所有Key为A的值 结果为数组
Object read = JsonPath.read(str,"$..A");
System.out.println(read.toString());

结果为

["a123","a258"]
$.B..H 取出B下面所有的key值为H
Object read = JsonPath.read(str,"$.B..H");
System.out.println(read.toString());

结果为

["haha","h123"]

标签:..,read,简单,json,JsonPath,数组,使用,表达式
From: https://www.cnblogs.com/wlstudy09/p/17370498.html

相关文章

  • Linux系统简单文件操作命令
      (1)查看当前目录问:提示符$与#的区别?【#】代表root权限【$】代表普通用户如果更改了/etc/profile,或~/.bashrc等文档,可以用任何符号来代替它们。(2)在用户主目录(家目录)下面创建一个以自己学号命名的目录并查看是否创建成功 问:如何列出当前目录下面的所有文件?(......
  • Bootstrap + Django - 前端bootstrap-table列表数据使用回调函数控制显示某一列数据
    前端bootstrap-table列表数据使用回调函数控制显示某一列数据1.效果1.有可以操作用户的权限,显示操作列2.无操作用户的权限,不显示操作列2.主要代码1.前端js<script>var$articlesTable=$('#table').bootstrapTable('destroy').bootstrapTable({url:'/team......
  • ansible基础使用
    简述ansible是新出现的自动化运维工具,基于Python开发集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点实现了批量系统配置、批量程序部署、批量运行命令等功能,无客户端ansible是基于paramiko开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量......
  • nginx 开启目录索引及简单用户认证
    目录索引及简单用户认证ngx_http_autoindex_module模块可以支持目录列表浏览,开启方式location/{autoindexon;}开启后就可以通过浏览器访问目录下的文件列表,像很多镜像资源站一样。可以文件浏览下载。这时候如果对某个目录不是所有用户可以访问下载,则可以使用ngx_htt......
  • profile.ps1 : 无法使用点 '.' 获得此命令来源,因为该命令是在不同语言模式下定 义的。
    使用自定义的PowerShell配置文件(所有用户,所有主机的情况下):打开PowerShell提示:C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1:无法使用点'.'获得此命令来源,因为该命令是在不同语言模式下定义的。要调用此命令而不导入其内容,请忽略'.'运算符。所在位置行:1......
  • windows下minio的使用
    主要是用于脱离公司服务器,在外需要开发时,本机启动开发测试使用使用方法,参照官网即可:https://min.io/download#/windows一点说明:命令行运行命令中C:\minio.exeserverF:\Data--console-address":9001"C:\minio.exe是下载的minio程序位置 F:\Data是存储数据位置......
  • Java中进行高精准度坐标数据计算使用BigDecimal(计算距离、开平方)
    场景Java中使用java.awt.geom.Point2D进行坐标相关的计算(距离、平方等):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126072919Java中使用JTS对空间几何计算(读取WKT、距离、点在面内、长度、面积、相交等):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article......
  • 简单的string_builder和string_table
    一、有些时候需要逐步构建一个字符串,需要用到类似其它语言中的StringBuilder的组件。有必要自己写一个把它搞清楚。string_builder有两个基本操作。一个是push操作,向末尾追加一个字符,若空间不够就自动额外申请。一个是获取string操作,拿到最终的串,串以空字符结尾。其它格式化的功......
  • 博主观点--关于本博客的使用路线图
    本博客主要是用于个人的知识整理,常用网站的归纳,仅供个人记录学习成长笔记使用,不做商业用途。本博客文章以Linux操作系统,开源软件,个人喜爱的数码硬件产品等为主,间接穿插其他相关的技术内容。平时写作时间不多,所以博客内容在每篇文章的最下一行标明最后的更新时间。所以,发布日期早......
  • RTThread使用DMA串口接收数据不连续的问题
    RTThread使用DMA接收串口数据的问题问题/现象解决方式解决方式①解决方式②其它疑问问题/现象使用RTThread的DMA接收串口数据,数据不连续,即IDLE中断没有起到作为一个frame的判定.经过对serial和drv_uarts源码的分析,得出原因:graphLRRX_INT[USART1_IRQHandler]-......