Разбор массива в JSON с использованием JsonPath в Java - PullRequest
1 голос
/ 22 марта 2019

Я использую библиотеку Jayway JsonPath для анализа JSON по указанному пути. Я могу получить строковое значение, если я дам правильный путь. Но я хочу получить список карт, когда я даю путь, если это массив. Например, у меня есть JSON, как показано ниже:

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

Ниже приведен код, который я использую для разбора json.

если я даю путь $.employees.people, я получаю строку, но мне нужен список карт. Ниже приведен код, который я использую для разбора Json с помощью jsonpath.

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 голосов
/ 22 марта 2019

попробуйте использовать,

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

если вам нужно больше деталей. ЧИТАТЬ ...

...