Các định dạng JSON natively không hỗ trợ dữ liệu nhị phân. Dữ liệu nhị phân phải được thoát để có thể đặt nó vào một phần tử chuỗi (tức là 0 hoặc nhiều ký tự Unicode trong dấu ngoặc kép bằng cách sử dụng dấu gạch chéo ngược) trong JSON.
Một phương pháp rõ ràng để thoát dữ liệu nhị phân là sử dụng Base64. Tuy nhiên, Base64 có chi phí xử lý cao. Ngoài ra, nó mở rộng 3 byte thành 4 ký tự dẫn đến tăng kích thước dữ liệu lên khoảng 33%.
Một trường hợp sử dụng cho điều này là bản nháp v0.8 của đặc tả API lưu trữ đám mây CDMI . Bạn tạo các đối tượng dữ liệu thông qua REST-Webservice bằng JSON, vd
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=",
}
Có cách nào tốt hơn và phương pháp chuẩn để mã hóa dữ liệu nhị phân thành chuỗi JSON không?
JSON.parse
v.v. ......