формат JSON изначально не поддерживает двоичные данные. Бинарные данные должны быть экранированы так, чтобы их можно было помещать в строковый элемент (т.е. Ноль или несколько символов Unicode в двойных кавычках с использованием обратных слэшей) в JSON.
Очевидным способом избежать двоичных данных является использование Base64. Однако Base64 имеет высокую нагрузку на обработку. Также он расширяет 3 байта на 4 символа, что приводит к увеличению размера данных примерно на 33%.
Одним из вариантов использования является проект v0.8 спецификация API облачных хранилищ CDMI. Вы создаете объекты данных через REST-Webservice с помощью JSON, например
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=",
}
Существуют ли лучшие способы и стандартные методы для кодирования двоичных данных в строки JSON?