Jsonpath 总是返回空列表
Jsonpath always returning empty list
我正在尝试借助 jayway JsonPath 从 json 文件中获取值。但每次它 returns 空列表。
我正在尝试将 json 路径用作 *.singleAccomViewData
import java.util.*;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
public class JSONMapper {
public static void main(String[] args) throws Exception {
DocumentContext jsonContext = JsonPath.parse("D:\Docs\search.json");
List<String> accom = JsonPath.read("D:\Docs\search.json", "*.singleAccomViewData");
System.out.println("accom value: " + accom);
}
}
下面是我的JSON文件:
{
"searchResult": {
"singleAccomViewData": null,
"singleAccomSearch": false,
"durationSelection": {
"defaultDisplay": [
6,
7,
8,
9,
10
]
}
}
}
上述方法不起作用的原因有几个:
如果您正在调用 JsonPath.read(String, String)
,那么第一个字符串应该是 Json 本身,而不是 Json 文件的路径。
使用 *
作为您的 Json 路径的根目录无效,应该是 $
.
你要找的上面还有一个对象:searchResult
.
您的最终 Json 路径应该是 $.searchResult.singleAccomViewData
。修复上述问题,它应该会按预期工作。
我正在尝试借助 jayway JsonPath 从 json 文件中获取值。但每次它 returns 空列表。
我正在尝试将 json 路径用作 *.singleAccomViewData
import java.util.*;
import com.jayway.jsonpath.DocumentContext;
import com.jayway.jsonpath.JsonPath;
public class JSONMapper {
public static void main(String[] args) throws Exception {
DocumentContext jsonContext = JsonPath.parse("D:\Docs\search.json");
List<String> accom = JsonPath.read("D:\Docs\search.json", "*.singleAccomViewData");
System.out.println("accom value: " + accom);
}
}
下面是我的JSON文件:
{
"searchResult": {
"singleAccomViewData": null,
"singleAccomSearch": false,
"durationSelection": {
"defaultDisplay": [
6,
7,
8,
9,
10
]
}
}
}
上述方法不起作用的原因有几个:
如果您正在调用
JsonPath.read(String, String)
,那么第一个字符串应该是 Json 本身,而不是 Json 文件的路径。使用
*
作为您的 Json 路径的根目录无效,应该是$
.你要找的上面还有一个对象:
searchResult
.
您的最终 Json 路径应该是 $.searchResult.singleAccomViewData
。修复上述问题,它应该会按预期工作。