Отсутствуют данные из JSON .parse - PullRequest
0 голосов
/ 11 апреля 2020

В API я пытаюсь передать некоторые изображения в виде необработанных данных с другой информацией. в ответе json. Например,

[{img:…………,data:a},
{img:………,color:red},
{img:………,dumb:1}]

Данные изображений находятся в необработанном байте, который ранее загружался с блобами в форме. С

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()

я обнаружил, что во время процесса потеряны данные. length данных изображений меньше, если я использую fetch с arrayBuffer(). Например,

var data = await fetch(url).(res)=>{return res.arrayBuffer();}};
Console.log(data);

Можно восстановить все изображения из 3 отдельных выборок, но не удалось получить ответ json. Что плохого в том, что JSON.parse() удаляет данные? Это связано с необработанными данными, представленными в json?

1 Ответ

0 голосов
/ 11 апреля 2020

JSON по умолчанию не поддерживает двоичные данные. Вы можете использовать некоторые обходные пути, например, экранировать с помощью base64, но это добавляет некоторые накладные расходы к размеру запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...