小编典典

什么是JSON八位位组,为什么需要两个八位位组?

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没有两个八位位组时都被破坏?

谢谢!


阅读 942

收藏
2020-07-27

共1个答案

小编典典

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