当先锋百科网

首页 1 2 3 4 5 6 7

JSON是一种轻量级的数据交换格式,能够将数据以文本的形式进行传输。然而,JSON的基本类型不包括二进制数据。在实际的应用场景中,我们经常需要传输图片、音频等二进制数据。那么,如何用JSON来传输这些数据呢?

// 传统的方式:使用Base64编码后传输
var imageData = new Uint8Array(binaryData);
var base64Image = btoa(String.fromCharCode.apply(null, imageData));
var json = {
    "image": base64Image
};

// 使用Blob对象来传输二进制数据
var blob = new Blob([binaryData], {type: "application/octet-stream"});
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
    var base64Image = reader.result;
    var json = {
        "image": base64Image
    };
}

json传二进制

传统的方式是先将二进制数据转换成Base64编码的字符串,然后在JSON中传输。这种方式虽然简单,但是会增加数据大小,降低传输效率。在性能要求较高的场景中,我们可以使用Blob对象来传输二进制数据。Blob对象是一种二进制数据的容器,可以直接传输二进制数据,而不需要将其转换成文本形式。在发送端,我们可以使用FileReader对象将Blob对象读取成Base64编码的字符串,然后将其放入JSON中传输。在接收端,我们需要对Base64编码的字符串进行解码,得到原始的二进制数据。