Я работаю над проектом, я загружаю zip-файл из Интернета через XMLHttpRequest (тип: blob), а затем пытаюсь прочитать его содержимое с помощью JSzip. Поэтому каждый zip-файл имеет json, который мне интересен, скажем, manifest.JSON.Поэтому мне удалось прочитать его с этим кодом.
var read_zip = new JSZip();
res=xhr.response;
read_zip.loadAsync(xhr.response).then(function (zip) {
return zip.file("manifest.json").async("string");
}).then(function (text) {
obj = JSON.parse(text);
console.log(text);});
после этого я внес некоторые изменения в 'obj', теперь я хочу заменить существующий манифест этим измененным содержимым json 'obj' и сохранить его,Я пытался этот код
var write_zip = new JSZip();
write_zip.loadAsync(xhr.response).then(function (zip) {
zip.file("manifest.json" , obj) ;
zip.generateAsync({type:"blob"})
.then(function (blob) {
saveAs(blob, "hello.zip");
});});
, но я получаю эту ошибку
Uncaught (in promise) Error: Can't read the data of 'manifest.json'.
Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc)
?
извините, я новичок в этом.