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'] |
keyset
alibaba/fastjson 之 JSONPath==>https://www.cnblogs.com/stormlong/p/10898350.html