Текст 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 ценности. Любые предложения будут ценны.

Ответы на вопрос(4)

Ваш ответ на вопрос