пустая схема и проверка - PullRequest
       10

пустая схема и проверка

0 голосов
/ 30 сентября 2018

Если у меня есть пустая схема JSON, например,

{}

, и я пытаюсь проверить следующие данные:

{
   "hello": "world",
}

будет ли проверка успешной?(обратите внимание на конечную запятую).

Я пытался использовать средство проверки схемы everit json в java,

JSONObject rawSchema = new JSONObject(new JSONTokener("{}"));

Schema schema = SchemaLoader.load(rawSchema);

schema.validate(new JSONObject("{\"hello\" : \"world\",}"));

, и это, похоже, подтверждает.

Интересно, что некоторые онлайн подтверждают этоJSON

https://www.jsonschemavalidator.net/

, тогда как другие этого не делают

https://json -schema-validator.herokuapp.com /

Последний использует парсер от Джексона перед проверкой, возможно, в этом причина?

1 Ответ

0 голосов
/ 30 сентября 2018

JSON Схема проверяет JSON.Технически, запятые не являются допустимыми JSON.Однако многие JSON игнорируют это и допускают запятые.В целом, безопаснее, если в JSON нет запятых с запятой, поэтому вы знаете, что он будет работать со всеми анализаторами JSON.

Вы проверяете по пустой схеме ({}).Пустая схема означает, что нет никаких ограничений на то, какое значение может быть.Значение, которое является допустимым JSON, будет действительным для этой схемы.Поэтому единственная причина, по которой у вас есть валидаторы, сообщающие о разных результатах, заключается в том, что они не согласны с тем, является ли это действительным JSON.Если валидатор использует синтаксический анализатор JSON, который допускает конечные запятые, он будет действительным, в противном случае он будет недействительным.

...