我收到了这个错误,我找不到这个问题的合理答案,所以我想我应该写一个问题的摘要。
如果您在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!
这就很好了。如果你不知道二进制八位数是什么,请阅读这篇文章以获取摘要和解决方案:What is a JSON octet and why are two required?
解决方案
您要传递的变量是一个空字符串。不要试图在JSON.parse
方法中使用空字符串。
问题
那么,现在我知道了错误的原因,我应该使用什么模式来处理它呢?我有点讨厌给JSON库打补丁来允许nil
值。任何建议都将不胜感激。
https://stackoverflow.com/questions/8390256
复制相似问题