JSON.parse 中缺少数据
Missing data from JSON.parse
在 API 中,我试图将一些图像作为原始数据与一些其他信息一起传递。在 json 回复中。例如
[{img:…………,data:a},
{img:………,color:red},
{img:………,dumb:1}]
图像的数据是原始字节,它是以前用 blob 形式上传的。
有
var xhr = new XMLHttpRequest;
...
xhr.onreadystate = function(){
…
var data = JSON.parse(this.response);
for (let obj of data) {
console.log(obj.img.length);
}
…
}
...
xhr.send()
我发现过程中有数据丢失。与 fetch
和 arrayBuffer()
相比,图像数据的 length
较小。例如
var data = await fetch(url).(res)=>{return res.arrayBuffer();}};
Console.log(data);
可以从 3 个单独的提取中重建所有图像,但从 json 响应中失败。
JSON.parse()
删除数据有什么问题?这与 json 中表示的原始数据有关吗?
JSON默认不支持二进制数据。您可以使用一些解决方法,例如使用 base64
转义它,但它会增加请求大小的开销。
在 API 中,我试图将一些图像作为原始数据与一些其他信息一起传递。在 json 回复中。例如
[{img:…………,data:a},
{img:………,color:red},
{img:………,dumb:1}]
图像的数据是原始字节,它是以前用 blob 形式上传的。 有
var xhr = new XMLHttpRequest;
...
xhr.onreadystate = function(){
…
var data = JSON.parse(this.response);
for (let obj of data) {
console.log(obj.img.length);
}
…
}
...
xhr.send()
我发现过程中有数据丢失。与 fetch
和 arrayBuffer()
相比,图像数据的 length
较小。例如
var data = await fetch(url).(res)=>{return res.arrayBuffer();}};
Console.log(data);
可以从 3 个单独的提取中重建所有图像,但从 json 响应中失败。
JSON.parse()
删除数据有什么问题?这与 json 中表示的原始数据有关吗?
JSON默认不支持二进制数据。您可以使用一些解决方法,例如使用 base64
转义它,但它会增加请求大小的开销。