как утверждать, что в объекте JSON нет поля - PullRequest
0 голосов
/ 26 марта 2020

Если у вас есть объект JSON (в Java) с несколькими вложенными полями, как вы утверждаете, что указанное поле c отсутствует?

Например, для следующего объекта ниже: как бы вы утверждали, что поле C существует / не существует:

{
"A": {
       "B": {
           "C": "field exists"
       }
     }
}

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Для модульного тестирования с java и json я использую библиотеку hamcrest и одно из ее расширений json -path-assert .

Это позволяет мне утверждать, используя json -path выражений.

Утверждать, что C существует

assertThat(yourJsonString, hasJsonPath("$.*.*.C"));

Утверждать, что C не существует

assertThat(yourJsonString, hasNoJsonPath("$.*.*.C"));
0 голосов
/ 26 марта 2020

это идея. Вы можете связать json с java объектом, используя любые библиотеки, такие как Джексон. класс объекта, в который вы можете добавить аннотации проверки бинов, такие как @NonNull et c. затем вы можете получить объект для проверки объекта bean и вызвать validate для объекта java. это даст вам набор ошибок.

https://docs.oracle.com/javaee/6/tutorial/doc/gircz.html

также есть 2 библиотеки, которые реализуют jsr 303

Есть ли доступна ли реализация JSR-303 (проверка бина)?

, здесь можно найти небольшое руководство https://www.baeldung.com/javax-validation

...