yndx-shri-reviewer / shri-2020-task-2

Задание 2. Напишите линтер — ШРИ, Москва, 2020
https://yandex.ru/promo/academy/shri
13 stars 41 forks source link

Вопрос по входным данным #20

Closed kidonrage closed 4 years ago

kidonrage commented 4 years ago

Входным JSON может являться массив, а не объект? Как в этом примере: [ // неправильно { "block": "text", "mods": { "type": "h3" } }, { "block": "text", "mods": { "type": "h2" } } ]

Или же валидным является только полученный на вход объект?

nat-k-dev commented 4 years ago

В задании указано, что на вход подается строка, string. В Issue упоминали, что в строке всегда валидный json. Как я понимаю, в строке на самом верхнем уровне может быть и массив, и объект. Я использую стороннюю библиотеку для парсинга входных данных. Тесты warning проходят, а тесты заголовков падают, предположительно из-за того, что входные данные отличаются от данных для проверки блока warning. Вопрос к @yndx-shri-reviewer , 1) какой еще возможен тип данных верхнего уровня (после парсинга строки), кроме объекта и массива (фигурные и квадратные скобки)? 2) возможны ли комментарии внутри json?

frontstall commented 4 years ago

В задании указано, что на вход подается строка, string. В Issue упоминали, что в строке всегда валидный json. Как я понимаю, в строке на самом верхнем уровне может быть и массив, и объект. Я использую стороннюю библиотеку для парсинга входных данных. Тесты warning проходят, а тесты заголовков падают, предположительно из-за того, что входные данные отличаются от данных для проверки блока warning.

Можно обернуть парсинг в try catch, в catch вернуть пустой массив и посмотреть, как поменяется вывод тестов. Спойлер: никак, все тестовые данные парсятся нормально. У меня тоже заголовки ни одного теста не проходят, хотя локально все работает и на примерах, и на произвольных файлах bemjson. Неделю уже дебажу :(

yndx-shri-reviewer commented 4 years ago

Входным JSON может являться массив, а не объект? Как в этом примере: [ // неправильно { "block": "text", "mods": { "type": "h3" } }, { "block": "text", "mods": { "type": "h2" } } ]

Или же валидным является только полученный на вход объект?

Корневым элементом всегда является объект

yndx-shri-reviewer commented 4 years ago

В задании указано, что на вход подается строка, string. В Issue упоминали, что в строке всегда валидный json. Как я понимаю, в строке на самом верхнем уровне может быть и массив, и объект. Я использую стороннюю библиотеку для парсинга входных данных. Тесты warning проходят, а тесты заголовков падают, предположительно из-за того, что входные данные отличаются от данных для проверки блока warning. Вопрос к @yndx-shri-reviewer ,

  1. какой еще возможен тип данных верхнего уровня (после парсинга строки), кроме объекта и массива (фигурные и квадратные скобки)?
  2. возможны ли комментарии внутри json?

1 Только объект 2 Нет