什么是JSON八位字节,为什么需要两个?
我有传入的数据,我存储在一个可变的messages
:
connection = ContextIO::Connection.new(key, secret) messages = connection.all_messages(:account => account, :limit => 100, :since => (Time.now - 3000.day ))
variablesmessages
格式化为JSON。 然后我执行这个:
foo = JSON.parse(messages)['data']
大部分时间这个工作。 每隔一段时间,我收到这个错误消息:
A JSON text must at least contain two octets!
该错误消息然后引用行JSON.parse(messages)['data']
-
什么是八位字节?
-
为什么JSON文本至less包含两个八位字节?
-
每次
messages
没有两个八位字节时,如何防止破坏我的代码?
谢谢!
- 八位字节是一组8位。 今天,八位字节与字节是同义的,但字节在历史上被称为任何“本地”比特分组,并且可能意味着4,6,7或8比特。
- JSON文本必须包含至less两个八位字节,因为JSON文档的顶层结构是数组或对象,最短的表示forms分别是
[]
和{}
。 - 检查值
messages
。 它可能是空的,未设置或由一个数字(如4
),这是不是有效的JSON,但被许多JSON实现接受。
虽然我完全同意其他答案,在我的情况下,我有一个有效的JSON
string,但仍然收到“JSON文本必须包含至less两个八位字节”错误信息时尝试JSON.parse
。
我的问题是,我没有指定application/json
内容types。 一旦我添加, JSON.parse
工作没有错误。
希望这可以帮助别人。