Binärdaten in JSON-Zeichenfolge. Etwas besseres als Base64
DasJSON-Format nativ unterstützt keine binären Daten. Die Binärdaten müssen maskiert werden, damit sie in JSON in ein Zeichenfolgenelement (d. H. Null oder mehr Unicode-Zeichen in Anführungszeichen mit umgekehrten Schrägstrichen) eingefügt werden können.
Eine naheliegende Methode, um Binärdaten zu entkommen, ist die Verwendung von Base64. Base64 hat jedoch einen hohen Verarbeitungsaufwand. Außerdem werden 3 Bytes zu 4 Zeichen erweitert, was zu einer Erhöhung der Datengröße um ca. 33% führt.
Ein Anwendungsfall hierfür ist der v0.8-Entwurf derCDMI-Cloud-Speicher-API-Spezifikation. Sie erstellen Datenobjekte über einen REST-Webservice mit JSON, z.
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=",
}
Gibt es bessere Möglichkeiten und Standardmethoden zum Codieren von Binärdaten in JSON-Zeichenfolgen?