Um texto JSON deve conter pelo menos dois octetos
Eu recebi esse erro e não consegui encontrar uma resposta razoável para essa pergunta, então pensei em escrever um resumo do problem
Se você executar este trecho no irb:
JSON.parse( nil )
Você verá o seguinte erro:
TypeError: can't convert nil into String
Eu estava esperando que a função retornassenil
e não umTypeError
. Se você converter todas as entradas usandoto_s
, você verá o erro de octeto:
JSON::ParserError: A JSON text must at least contain two octets!
Tudo bem e bem. Se você não sabe o que é um octeto, leia esta postagem para obter um resumo e uma solução:O que é um octeto JSON e por que dois são necessário
Soluçã
A variável que você está passando é uma string vazia. Não tente usar uma string vazia noJSON.parse
método.
Questã
Então, agora eu sei a causa do erro, que padrão devo usar para lidar com isso? Eu sou um pouco repugnante por consertar um macaco na biblioteca JSON para permitirnil
valores. Qualquer sugestão seria muito apreciada.