我收到此错误,并且找不到该问题的任何合理答案,因此我想写一个问题的摘要。
如果您在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
值。任何建议将不胜感激。
""
,这是两个八位字节(而绝对的最小最小对象是{}
)。无论是谁写的,编码器/解析器都不认为这null
也是有效的javascript值。