我试图借助jayway JsonPath从json文件中获取值。但是每次它返回空列表。
我正在尝试将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
]
}
}
}
答案 0 :(得分:2)
有几种原因导致上述方法不起作用:
如果您正在调用JsonPath.read(String, String)
,则第一个String应该是Json本身,而不是Json文件的路径。
使用*
作为JsonPath的根目录无效,它应该是$
。
要查找的对象上方还有另一个对象:searchResult
。
您最终的JsonPath应该是$.searchResult.singleAccomViewData
。解决上述问题,它应该可以正常工作。