Невозможно получить значение ключа с пробелами, используя библиотеку JsonPath - PullRequest
1 голос
/ 21 января 2020

Я использую Json Путь Библиотека для анализа JSON. Я придерживаюсь json, у которого есть ключ с пробелом:

{
    "attributes": {
        "First Name": "Jim",
        "Last Name": "Rohn"
    }
}

Чтобы получить значение First Name, я написал такой код (где json - это объект, который содержит json) -

String firstName = JsonPath.from(json).getString("attributes.First Name");

Но это приводит к следующей ошибке -

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found 'Attributes' @ line 1, column 67.
   .First Name

Не могли бы вы предложить, как получить значения ключа с пробелами, используя библиотеку json-path?

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Попробуйте использовать скобочные обозначения для First Name следующим образом:

String firstName = JsonPath.from(json).getString("attributes.['First Name']");

ОБНОВЛЕНИЕ

Извините за смешение различных библиотек JsoPath.

Если вы используете com.jayway.jsonpath, попробуйте следующий способ для выхода:

DocumentContext jsonContext = JsonPath.parse(json);
String firstName = jsonContext.read("$.attributes.['First Name']");

Но если вы используете ***.restassured.json-path, пожалуйста, используйте этот:

String firstName = JsonPath.from(json).getString("attributes.'First Name'");
0 голосов
/ 21 января 2020

Вы должны выходить из ключа с одинарными кавычками

Используйте код ниже:

String firstName = JsonPath.from(json).getString("'attributes.First Name'");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...