Экспорт объекта Json в текстовый файл

Я пытаюсь написать объект Json (JsonExport) и хочу записать его содержимое в текстовый файл.

Я использую max4live для экспорта данных из Audio DAW в Json для экспорта на сервер, но после этого я хотел бы увидеть весь объект Json в текстовом файле:

 var txtFile = "test.txt";
 var file = new File(txtFile);
 var str = JSON.stringify(JsonExport);


 file.open("write"); // open file with write access
 file.write(str);
 file.close();

Компилятор работает без ошибок, но я не могу получить текстовый файл. Я также использовал путь к некоторым из моих каталогов и ничего.

Есть идеи, что происходит? Спасибо


person Albeis    schedule 18.11.2015    source источник
comment
Пожалуйста, проверьте этот пост stackoverflow.com/questions/16055391/   -  person VishwaKumar    schedule 18.11.2015


Ответы (3)


Я знаю, что на этот вопрос уже принят ответ, но я думаю, что мой ответ может кому-то помочь. Итак, проблема заключается в том, чтобы экспортировать данные Json в текстовый файл. Как только вы выполните следующий код, файл будет загружен браузером.

const filename = 'data.json';
const jsonStr = JSON.stringify(JsonExport);

let element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(jsonStr));
element.setAttribute('download', filename);

element.style.display = 'none';
document.body.appendChild(element);

element.click();

document.body.removeChild(element);
person NutCracker    schedule 12.09.2018

Если у вас есть доступ к уже существующему файлу, просто дайте ссылку на него. Вы можете указать, какое имя загруженного файла будет следующим:

<a href="path/to/file.txt" download="example.json">
    Download as JSON
</a>

При необходимости вы также можете написать dataURI.

 //Get the file contents
 var txtFile = "test.txt";
 var file = new File(txtFile);
 var str = JSON.stringify(JsonExport);

 //Save the file contents as a DataURI
 var dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(str);

 //Write it as the href for the link
 var link = document.getElementById('link').href = dataUri;

Затем просто дайте ссылке идентификатор и значение по умолчанию href.

<a href="#" id="link" download="example.json">
    Download as JSON
</a>
person CBarr    schedule 18.11.2015

Наконец то я понял! Это сработало, изменив несколько параметров следующим образом:

   var txtFile = "/tmp/test.txt";
   var file = new File(txtFile,"write");
   var str = JSON.stringify(JsonExport);

   log("opening file...");
   file.open(); 
   log("writing file..");
   file.writeline(str);
   file.close();

Путь к моим каталогам не разрешен, поэтому мне пришлось сохранить его в каталоге /tmp. Спасибо всем!

person Albeis    schedule 19.11.2015
comment
можем ли мы записать в txt файл, используя этот метод, если javascript запускается в браузере? - person user1788736; 09.10.2017