JsonPath表達(dá)式通常是用來路徑檢索Json的,是xpath在json的應(yīng)用
我在工作中遇到一個接口碴巾,返回的json很復(fù)雜模捂,嵌套6層勋拟,且中間的key值是變動的,這時要提取其中的部分?jǐn)?shù)據(jù)苔货,通過jsonobject犀概、fastjson、gson都不行夜惭,這時想到用jsonpath來解決姻灶,一行代碼就完事了。
圖1
eg:List<JSONArray> aList= JsonPath.read(re, "$..answer2");
$:代表根節(jié)點(diǎn)
..:從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn)滥嘴,而不考慮它們的位置木蹬。
在pom.xml中添加如下:
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
或者導(dǎo)入jsonPath所需jar包(json-path-0.8.1.jar,json-smart-1.1.1.jar若皱,commons-lang-2.6.jar)镊叁,
假如不使用jsonPath,就要通過一層一層的遍歷獲取json數(shù)據(jù)中的值走触,增加了代碼的復(fù)雜度和工作量晦譬。