web-dev-qa-db-fra.com

Exporter un objet Json dans un fichier texte

J'essaie d'écrire un objet Json (JsonExport) et j'aimerais écrire son contenu dans un fichier texte.

J'utilise max4live pour exporter des données d'Audio DAW vers Json afin d'exporter vers un serveur, mais après cela, je voudrais voir tout l'objet Json dans un fichier texte:

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

Le compilateur fonctionne sans erreur, mais je ne peux pas obtenir le fichier texte. J'ai également utilisé le chemin d'accès à certains de mes répertoires et rien.

Une idée de ce qui se passe? Merci

10
Albeis

Je l'ai finalement eu! Cela a fonctionné en modifiant quelques paramètres comme celui-ci:

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

Chemin d'accès à mes répertoires non autorisé, j'ai donc dû l'enregistrer sur le répertoire/tmp. Merci à tous!

5
Albeis

Si vous avez accès à un fichier déjà existant, liez-le simplement. Vous pouvez spécifier le nom du fichier téléchargé comme ceci:

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

Si nécessaire, vous pouvez également écrire le 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;

Ensuite, donnez simplement au lien un ID et un href par défaut

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

Je sais que cette question a déjà accepté la réponse, mais je pense que ma réponse pourrait aider quelqu'un. Ainsi, le problème est d'exporter les données Json vers un fichier texte. Une fois que vous avez exécuté le code suivant, le fichier sera téléchargé par le navigateur.

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);
5
NutCracker