https://github.com/alibaba/fastjson/wiki/JSONPath
1. JSONPath介绍
fastjson 1.2.0之后的版本支持JSONPath。这是一个很强大的功能,可以在java框架中当作对象查询语言(OQL)来使用。
2. API
建议缓存JSONPath对象,这样能够提高求值的性能。
3. 支持语法
JSONPATH | 描述 |
$ | 根对象,例如$.name |
[num] | 数组访问,其中num是数字,可以是负数。例如$[0].leader.departments[-1].name |
[num0,num1,num2...] | 数组多个元素访问,其中num是数字,可以是负数,返回数组中的多个元素。例如$[0,3,-2,5] |
[start:end] | 数组范围访问,其中start和end是开始小表和结束下标,可以是负数,返回数组中的多个元素。例如$[0:5] |
[start:end :step] | 数组范围访问,其中start和end是开始小表和结束下标,可以是负数;step是步长,返回数组中的多个元素。例如$[0:5:2] |
[?(key)] | 对象属性非空过滤,例如$.departs[?(name)] |
[key > 123] | 数值类型对象属性比较过滤,例如$.departs[id >= 123],比较操作符支持=,!=,>,>=,<,<= |
[key = '123'] | 字符串类型对象属性比较过滤,例如$.departs[name = '123'],比较操作符支持=,!=,>,>=,<,<= |
[key like 'aa%'] | 字符串类型like过滤, 例如$.departs[name like 'sz*'],通配符只支持% 支持not like |
[key rlike 'regexpr'] | 字符串类型正则匹配过滤, 例如departs[name like 'aa(.)*'], 正则语法为jdk的正则语法,支持not rlike |
[key in ('v0', 'v1')] | IN过滤, 支持字符串和数值类型 例如: $.departs[name in ('wenshao','Yako')] $.departs[id not in (101,102)] |
[key between 234 and 456] | BETWEEN过滤, 支持数值类型,支持not between 例如: $.departs[id between 101 and 201] $.departs[id not between 101 and 201] |
length() 或者 size() | 数组长度。例如$.values.size() 支持类型java.util.Map和java.util.Collection和数组 |
keySet() | 获取Map的keySet或者对象的非空属性名称。例如$.val.keySet() 支持类型:Map和普通对象 不支持:Collection和数组(返回null) |
. | 属性访问,例如$.name |
.. | deepScan属性访问,例如$..name |
* | 对象的所有属性,例如$.leader.* |
['key'] | 属性访问。例如$['name'] |
['key0','key1'] | 多个属性访问。例如$['id','name'] |
以下两种写法的语义是相同的:
和
4. 语法示例
JSONPath | 语义 |
$ | 根对象 |
$[-1] | 最后元素 |
$[:-2] | 第1个至倒数第2个 |
$[1:] | 第2个之后所有元素 |
$[1,2,3] | 集合中1,2,3个元素 |
5. API 示例
5.1 例1
5.2 例2
读取集合多个元素的某个属性
5.3 例3
返回集合中多个元素
5.4 例4
按范围返回集合的子集
5.5 例5
通过条件过滤,返回集合的子集
5.6 例6
根据属性值过滤条件判断是否返回对象,修改对象,数组属性添加元素
5.7 例7
5.8 例8 keySet
使用keySet抽取对象的属性名,null值属性的名字并不包含在keySet结果中,使用时需要注意,详细可参考示例。
相关推荐
主要介绍了使用fastjson中的JSONPath处理json数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
fast-json:该包实现了部分JSON的快速提取
fastjson-1.2.83.jar下载,fastjson是阿里巴巴的开源JSON解析库,可以解析JSON...5. 支持JSONPath:fastjson支持JSONPath表达式查询。 6. 支持注解:fastjson支持多种注解配置JSON序列化和反序列化。 7. 支持携带格式:f
赠送jar包:fastjson-1.2.54.jar; 赠送原API文档:fastjson-1.2.54-javadoc.jar; 赠送源代码:fastjson-1.2.54-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.54.pom; 包含翻译后的API文档:fastjson-...
赠送jar包:fastjson-1.2.72.jar; 赠送原API文档:fastjson-1.2.72-javadoc.jar; 赠送源代码:fastjson-1.2.72-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.72.pom; 包含翻译后的API文档:fastjson-1.2....
赠送jar包:fastjson-1.2.78.jar; 赠送原API文档:fastjson-1.2.78-javadoc.jar; 赠送源代码:fastjson-1.2.78-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.78.pom; 包含翻译后的API文档:fastjson-1.2....
fastjson-1.1.35.jar ,fastjson-1.1.36.jar ,fastjson-1.1.37.jar ,fastjson-1.1.44.jar ,fastjson-1.2.3.jar,fastjson-1.2.4.jar
Alibaba Fastjson Jar包官方版是可以帮助使用Fastjson功能的Fastjson jar包,Fastjson是一个Java语言编写的高性能功能完善的JSON库,当然必备Alibaba Fastjson Jar包官方版。
Android Studio FastJSON小示例,对应博文地址: http://blog.csdn.net/djstavaV/article/details/48785801
springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot ...
fastJSON 版本 v2.1.18
fastjson 的一个小例子,里面是我博客中的代码, http://blog.csdn.net/yunxiaoxiaoyun/article/details/16811973
Fastjson 1.2.80 及之前版本使用黑白名单用于防御反序列化漏洞,经研究该防御策略在特定条件下可绕过默认 autoType 关闭限制,攻击远程服务器,风险影响较大。建议 Fastjson 用户尽快采取安全措施保障系统安全
实现json转换,fastjson json json转换,可以帮助开发中涉及json格式处理的程序猿。
通过fastjson实现了JavaBean,list,MAP,list等格式与json格式之间的转换,已经附带fastjson的包,包的版本为fastjson-1.1.36.jar
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; 导入这些的依赖包
赠送jar包:fastjson-1.2.51.jar; 赠送原API文档:fastjson-1.2.51-javadoc.jar; 赠送源代码:fastjson-1.2.51-sources.jar; 赠送Maven依赖信息文件:fastjson-1.2.51.pom; 包含翻译后的API文档:fastjson-...
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson”>jackson) 强大(支持普通JDK类...
fastjson-1.2.31的官方jar包合集【fastjson-1.2.31.jar,fastjson-1.2.31-sources.jar,fastjson-1.2.31-sources.jar】,还包括源码source,和文档。
fastjson-1.2.76.jar