Dane binarne w łańcuchu JSON. Coś lepszego niż Base64

TheFormat JSON natywnie nie obsługuje danych binarnych. Dane binarne muszą być ucieczkowe, aby można je było umieścić w elemencie łańcuchowym (tj. Zero lub więcej znaków Unicode w podwójnych cudzysłowach przy użyciu odwrotnych ukośników) w JSON.

Oczywistą metodą ucieczki danych binarnych jest użycie Base64. Jednak Base64 ma wysokie obciążenie przetwarzania. Rozszerza również 3 bajty na 4 znaki, co prowadzi do zwiększenia rozmiaru danych o około 33%.

Jednym z przypadków użycia jest wersja v0.8Specyfikacja API przechowywania danych w chmurze CDMI. Obiekty danych tworzysz za pośrednictwem usługi REST-Webservice przy użyciu JSON, np.

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=",
}

Czy istnieją lepsze sposoby i standardowe metody kodowania danych binarnych do łańcuchów JSON?

questionAnswers(16)

yourAnswerToTheQuestion