使用Java中的JsonPath解析JSON中的数组

时间:2019-03-22 03:51:45

标签: java json jsonpath

我正在使用jayway JsonPath库使用给定的路径来解析JSON。如果我给出正确的路径,我就能得到字符串值。但是当我给出路径(如果它是数组)时,我想获取地图列表。例如,我有一个如下所示的JSON:

{
    "employees": {
        "company": "Google",
        "people": [{
            "name": "John",
            "age": 25,
            "location": "zurich"
        },
        {
            "name": "Peter",
            "age": 27,
            "location": "Lucerene"
        }]
    }
}

下面是我用来解析json的代码。

如果我给出路径$.employees.people,我得到的是字符串,但我需要列出地图。以下是我使用jsonpath解析Json的代码。

DocumentContext documentContext = JsonPath.parse(jsonStr);
JsonPath jsonPath = JsonPath.compile("$.employees.people");
List<Maps<String,String>> jsonList = documentContext.read(jsonPath) //But this is returning String

任何人都建议采取正确的方法来达到我的期望。

1 个答案:

答案 0 :(得分:-1)

尝试使用

DocumentContext documentContext = JsonPath.parse(jsonStr);
JsonPath jsonPath = JsonPath.compile("$.employees.people[?]");
List<Maps<String,String>> jsonList = documentContext.read(jsonPath);

如果您需要更多详细信息。 readmore...