ruby-on-rails - resumen - regla del octeto ejemplos
¿Qué es un octeto JSON y por qué se requieren dos? (2)
- Un octeto es un grupo de 8 bits. Hoy en día, octeto es sinónimo de byte, pero byte históricamente se refería a cualquier agrupación "nativa" de bits, y eso podría significar 4,6,7 u 8 bits.
- El texto JSON debe contener al menos dos octetos porque la estructura de nivel superior de un documento JSON es una matriz u objeto, y las representaciones más cortas de esos son
[]
y{}
, respectivamente. - Verifica los
messages
valor. Probablemente esté vacío, sin configurar o conste de un solo dígito (como4
), que no es JSON válido, pero que es aceptado por muchas implementaciones JSON.
Tengo datos entrantes, que almaceno en messages
variables:
connection = ContextIO::Connection.new(key, secret)
messages = connection.all_messages(:account => account, :limit => 100, :since => (Time.now - 3000.day ))
Los messages
variables están formateados en JSON. Entonces ejecuto esto:
foo = JSON.parse(messages)[''data'']
La mayoría de las veces esto funciona. De vez en cuando, recibo este mensaje de error:
A JSON text must at least contain two octets!
Ese mensaje de error se refiere a la línea JSON.parse(messages)[''data'']
¿Qué es un octeto?
¿Por qué el texto JSON debe contener al menos dos octetos?
¿Cómo evito que mi código se rompa cada vez que los
messages
no tienen dos octetos?
¡Gracias!
Aunque estoy totalmente de acuerdo con la otra respuesta, en mi caso tenía una cadena JSON
válida pero todavía recibía el mensaje de error "El texto JSON debe contener al menos dos octetos" al intentar con JSON.parse
.
Mi problema era que no estaba especificando el tipo de contenido de la application/json
. Una vez que agregué eso, JSON.parse
funcionó sin error.
Espero que esto ayude a alguien más.