ruby-on-rails - 什么是 JSON 八位组,为什么需要两个?

我有传入的数据,我将其存储在一个变量 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']

  1. 什么是八位字节?

  2. 为什么 JSON 文本必须至少包含两个八位字节?

  3. messages 没有两个八位字节时,如何防止我的代码中断?

谢谢!

最佳答案

  1. 一个八位组是一组 8 位。今天,八位字节是字节的同义词,但字节在历史上指的是任何“ native ”位分组,这可能意味着 4、6、7 或 8 位。
  2. JSON 文本必须至少包含两个八位字节,因为 JSON 文档的顶级结构是数组或对象,它们的最短表示是 []{},分别。
  3. 检查值 messages。它可能是空的、未设置的或由单个数字组成(如 4),这是不是有效的 JSON,但被许多 JSON 实现所接受。

https://stackoverflow.com/questions/7200554/

相关文章:

json - Jackson json反序列化,忽略json中的根元素

json - 对于 Restful API,GET 方法可以使用 json 数据吗?

java - @JsonUnwrapped 的 Jackson 反序列化等价物是什么?

json - 在 JSON 中禁用超文本应用程序语言 (HAL)?

javascript - 是否可以通过适当的 JavaScript 字符串转义来利用 JSON 响应

php - 在 Laravel 4 中将 Eloquent 模型返回为 JSON

json - 使用 d3.json 导入本地 json 文件不起作用

json - 如何解析嵌套 JSON 对象中的内部字段

python - 用 json 编码元组的最佳方法

java - 将 JSONObject 转换为 Map