Jsonpath总是返回空列表

时间:2019-08-20 21:22:30

标签: java jsonpath

我试图借助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
      ] 
    }
   }
}

1 个答案:

答案 0 :(得分:2)

有几种原因导致上述方法不起作用:

  1. 如果您正在调用JsonPath.read(String, String),则第一个String应该是Json本身,而不是Json文件的路径。

  2. 使用*作为JsonPath的根目录无效,它应该是$

  3. 要查找的对象上方还有另一个对象:searchResult

您最终的JsonPath应该是$.searchResult.singleAccomViewData。解决上述问题,它应该可以正常工作。