LINUX.ORG.RU

Валидация json по json-schema с номером строки в ошибке

 ,


0

1

Ребят, кто-нибудь встречал js-либу для валидации json по json schema с номером строки в ошибке? Я пробежался по гитхаб репам из списка со страницы http://json-schema.org/implementations.html и не нашёл в описании нужную фичу. Попробовать пока успел только jsen, но он на вход принимает уже прочитанный объект, следовательно номер строки с ошибкой он дать не может.


Ответ на: комментарий от techie

А с чего ты взял что оно вообще обязано номер строки проверять? На libxml насмотрелся? Но, JSON вообще не подразумевает форматирование, это же только данные.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Не должно, но почему бы и нет? В json есть перевод строки, чем не форматирование? Мне нужно дать пользователю вводить сложные данные в json, причём проверять нужно на соответствие некоторым типам (например, какая-то строка не может содержать больше 42 символов). И чтобы он сам не искал ошибку, хочется показать маркер на нужной строке.

techie
() автор топика
Ответ на: комментарий от techie

В таком случае, чтобы не быть привязанным к номеру строки, используй позицию, в которой найдена ошибка, т.е. рассматривай всегда как одну строку, даже если там и будут фактические переводы строк.

deep-purple ★★★★★
()
Ответ на: комментарий от deep-purple

Ага, я взял https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js для парсинга json, он даёт позицию символа в ошибке. А вот ошибку с данными (типа тех 42 символов) придётся пока под полем для ввода показывать - без привязки к строке.

Ещё я нашёл sax-парсер для json, может позже с ним попробую сделать валидацию получше.

techie
() автор топика
Ответ на: комментарий от techie

ошибку с данными (типа тех 42 символов)

А вот это уже после того как преобразовал во внутреннее объектное представление. Там же в объекте, если так хочется, можешь сохранить и позицию этого объекта в строке.

deep-purple ★★★★★
()

Нет таких. Они по объекту проперть могут выдать. А чтобы спозиционировать - надо искать парсер который маппинги выдает. Это отдельные задачи.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.