Текст JSON должен содержать как минимум два октета
Я получил эту ошибку и не смог найти разумного ответа на этот вопрос, поэтому я решил написать краткое изложение проблемы.
Если вы запустите этот фрагмент в irb:
JSON.parse( nil )
Вы увидите следующую ошибку:
TypeError: can't convert nil into String
Я ожидал, что функция вернетсяnil
и неTypeError
, Если вы преобразуете все входные данные, используяto_s
, тогда вы увидите ошибку октета:
JSON::ParserError: A JSON text must at least contain two octets!
Это просто отлично и хорошо. Если вы не знаете, что такое октет, прочитайте этот пост для краткого изложения и решения:Что такое октет JSON и почему требуются два?
Решение
Переменная, в которую вы передаете, является пустой строкой. Не пытайтесь использовать пустую строку вJSON.parse
метод.
Вопрос
Итак, теперь я знаю причину ошибки, какой шаблон я должен использовать для обработки этого? Я немного не люблю мартышку исправлять библиотеку JSON, чтобыnil
ценности. Любые предложения будут ценны.