514 votos

Datos binarios en la cadena JSON. Algo mejor que la Base64

El El formato JSON nativamente no soporta datos binarios. Los datos binarios tienen que ser escapados para que puedan ser colocados en un elemento de cadena (es decir, cero o más caracteres Unicode entre comillas dobles usando escapes de barra invertida) en JSON.

Un método obvio para escapar de los datos binarios es usar Base64. Sin embargo, Base64 tiene una alta carga de procesamiento. También expande 3 bytes en 4 caracteres lo que lleva a un aumento del tamaño de los datos de alrededor del 33%.

Un caso de uso para esto es el borrador v0.8 del Especificación de la API de almacenamiento en la nube de CDMI . Creas objetos de datos a través de un REST-Webservice usando JSON, por ejemplo.

PUT /MyContainer/BinaryObject HTTP/1.1
Host: cloud.example.com
Accept: application/vnd.org.snia.cdmi.dataobject+json
Content-Type: application/vnd.org.snia.cdmi.dataobject+json
X-CDMI-Specification-Version: 1.0
{
    "mimetype" : "application/octet-stream”,
    "metadata" : [ ],
    "value" :   "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
    IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
    dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
    dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
    ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=",
}

¿Hay mejores formas y métodos estándar para codificar datos binarios en cadenas JSON?

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X