我有传入数据,我将其存储在变量messages
中:
connection = ContextIO::Connection.new(key, secret)
messages = connection.all_messages(:account => account, :limit => 100, :since => (Time.now - 3000.day ))
变量messages
的格式为JSON。然后我执行这个:
foo = JSON.parse(messages)['data']
大部分时间都有效。我一次又一次地收到此错误消息:
A JSON text must at least contain two octets!
然后该错误消息引用行JSON.parse(messages)['data']
什么是八位字节?
为什么JSON文本必须包含至少两个八位字节?
每次messages
没有两个八位字节时,如何防止我的代码被破坏?
谢谢!
答案 0 :(得分:48)
[]
和{}
。messages
。它可能是空的,未设置或由一个数字组成(如4
),它是不是有效的JSON,但被许多JSON实现所接受。答案 1 :(得分:6)
虽然我完全同意另一个答案,但在我的情况下,我有一个有效的JSON
字符串,但在尝试JSON.parse
时仍然收到“JSON文本必须包含至少两个八位字节”的错误消息。
我的问题是我没有指定application/json
的内容类型。一旦我添加了它,JSON.parse
正常工作。
希望这有助于其他人。