fastjson 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個元素

 

 

 

 

keyset

 

 

 

 

 

alibaba/fastjson 之 JSONPath==>https://www.cnblogs.com/stormlong/p/10898350.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章