I have incoming data, which I store in a variable messages
:
connection = ContextIO::Connection.new(key, secret)
messages = connection.all_messages(:account => account, :limit => 100, :since => (Time.now - 3000.day ))
The variable messages
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 JSON.parse(messages)['data']
What is an octet?
Why must JSON text contain at least two octets?
How do I prevent my code from breaking every time messages
does not have two octets?
Thanks!
[]
and {}
, respectively.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.While I totally agree with the other answer, in my case I had a valid JSON
string but was still receiving the "JSON text must contain at least two octets" error message when trying to JSON.parse
.
My issue was that I was not specifying content type of application/json
. Once I added that, JSON.parse
worked without error.
Hope this helps someone else.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With