JsonPath实践(六)
时间:2022-07-24
本文章向大家介绍JsonPath实践(六),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
之前分享了jsonpath
的部分API
使用,基本已经把基础的内容讲完了,今天分享一下JsonPath API
中的函数的使用方法,其实之前讲到的一些json数组
的过滤中已经用到了一些函数
,大概是因为功能不一样吧,这里将的函数都是处理json数组
的,而不是过滤数组的条件。
json数据
在原来的数据基础上增加了部分字段和部分节点。
JSONObject json = JSON.parseObject("{" +
" "store": {" +
" "book": [" +
" {" +
" "category": "reference"," +
" "author": "Nigel Rees"," +
" "title": "Sayings of the Century"," +
" "page": "D"," +
" "pages": ["S","X","G"]," +
" "price": 8.95" +
" }," +
" {" +
" "category": "fiction"," +
" "author": "Evelyn Waugh"," +
" "title": "Sword of Honour"," +
" "page": "A"," +
" "pages": ["A","B"]," +
" "price": 12.99" +
" }," +
" {" +
" "category": "fiction"," +
" "author": "Herman Melville"," +
" "title": "Moby Dick"," +
" "isbn": "0-553-21311-3"," +
" "page": "B"," +
" "pages": ["E","F"]," +
" "price": 8.99" +
" }," +
" {" +
" "category": "fiction"," +
" "author": "J. R. R. Tolkien"," +
" "title": "The Lord of the Rings"," +
" "isbn": "0-395-19395-8"," +
" "page": "C"," +
" "pages": ["C","D"]," +
" "price": 22.99" +
" }" +
" ]," +
" "bicycle": {" +
" "color": "red"," +
" "price": 19.95" +
" }" +
" }," +
" "expensive": 10," +
" "ss": [32,32,4,23]" +
"}");
获取数组最小值
jsonpath
:$.ss.min()
代码:
Object read = JsonPath.read(json, "$.ss.min()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 4.0
Process finished with exit code 0
- 这里需要注意,该方法返回值是一个
double
的数值,测试中用的int
整型,但是结果返回的是4.0
。
获取数组的最大值
jsonpath
:$.ss.max()
代码:
Object read = JsonPath.read(json, "$.ss.max()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 32.0
Process finished with exit code 0
- 同样的,
max
函数返回的也是double
浮点型数据。
获取数组的平均值
jsonpath
:$.ss.avg()
代码:
Object read = JsonPath.read(json, "$.ss.avg()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 22.75
Process finished with exit code 0
- 同样的,
max
函数返回的也是double
浮点型数据。
获取数组的标准差
jsonpath
:$.ss.stddev()
代码:
Object read = JsonPath.read(json, "$.ss.stddev()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 11.431863365173676
Process finished with exit code 0
- 同样的,
stddev
函数返回的也是double
浮点型数据。
获取数组的长度
- 对于
json数组
适用。
jsonpath
:$.ss.length()
jsonpath
:$.store.book.length()
代码:
Object read = JsonPath.read(json, "$.ss.length()");
output(read);
Object read = JsonPath.read(json, "$.store.book.length()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 4
Process finished with exit code 0
求数组的和
jsonpath
:$.ss.sum()
代码:
Object read = JsonPath.read(json, "$.ss.sum()");
output(read);
等效写法继续省略……
控制台输出:
INFO-> 当前用户:fv,IP:10.60.192.21,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.6
INFO-> 91.0
Process finished with exit code 0
- 同样的,
sun
函数返回的也是double
浮点型数据。
自此,JsonPath API
系列已经更完了,我在积极准备JsonPath util
的内容,使用Groovy
的Groovy重载操作符(终极版)功能,敬请期待。
- Oracle 表空间管理
- 数据加密字段加密
- 《Netkiller Virtualization 手札》Docker 卷管理
- PHP高级编程之守护进程
- Spring boot with Docker
- Spring boot with Service
- Spring boot with PostgreSQL
- Struts2 S2-046, S2-045 Firewall(漏洞防火墙)
- 应用程序的通信成本
- Spring cloud 之 Feign Client
- Spring Cloud Netflix
- 重新整理AUTO_INCREMENT字段
- Spring Cloud Config
- Spring boot with Schedule (启用/禁用)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Dart 中变量类型 var, Object, dynamic 区别
- C++ 中的static关键字使用场景
- Dart 中的生产模式和检查模式
- 使用mysqladmin工具统计mysql当前的T/QPS
- MixIn 理解
- Day14:链表中倒数第k个结点
- Flutter开发笔记——BottomNavigationBar设置未选择Item颜色
- 访问虚拟机局域网服务拒绝连接
- uninstalling vim-minimal 同时也卸载了 sudo 解决方法
- 大点干!早点散----------深入剖析缓存加速--squid(反向代理与ACL访问控制以及sarg日志)
- JVM的Xms和Xmx参数设置为相同值有什么好处?
- 【CVPR 2020】一种新的门控通道注意力转换单元
- 5个好用的 CSS 函数
- java1.8中Object类源码分析
- 多线程基础(六):Object的wait方法以及notify与notifyAll的区别