受信したデータは変数に保存します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']
オクテットとは何ですか?
JSON テキストにはなぜ少なくとも 2 つのオクテットが含まれている必要があるのですか?
messages
2 つのオクテットがないたびにコードが壊れないようにするにはどうすればよいですか?
ありがとう!
ベストアンサー1
- オクテットは 8 ビットのグループです。今日では、オクテットはバイトと同義ですが、バイトは歴史的には「ネイティブ」なビットのグループを指し、4、6、7、または 8 ビットを意味します。
- JSON ドキュメントの最上位構造は配列またはオブジェクトであり、それらの最短表現はそれぞれ
[]
とであるため、JSON テキストには少なくとも 2 つのオクテットが含まれている必要があります{}
。 - 値を確認してください
messages
。おそらく空か、設定されていないか、1桁の数字( など4
)で構成されており、ない有効な JSON ですが、多くの JSON 実装で受け入れられます。