MorningHacker MorningHacker - 6 months ago 39
JSON Question

What is a JSON octet and why are two required?

I have incoming data, which I store in a variable


connection =, secret)
messages = connection.all_messages(:account => account, :limit => 100, :since => ( - ))

The variable
is formatted in JSON. Then I execute this:

foo = JSON.parse(messages)['data']

Most of the time this works. Every now and again, I get this error message:

A JSON text must at least contain two octets!

That error message then refers to the line

  1. What is an octet?

  2. Why must JSON text contain at least two octets?

  3. How do I prevent my code from breaking every time
    does not have two octets?


  1. An octet is a group of 8 bits. Today, octet is synonymous with byte, but byte historically referred to any "native" grouping of bits, and that could mean 4,6,7, or 8 bits.
  2. Because the top-level structure of a JSON document is an array or object, and the shortest representations of those are [] and {}, respectively.
  3. Check the value messages. It is probably empty, unset or consists of a single digit (like 4), which is not valid JSON, but accepted by many JSON implementations.