web-dev-qa-db-ja.com

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

コンパイラはエラーなしで実行されますが、テキストファイルを取得できません。ディレクトリの一部へのパスも使用しましたが、何も使用していません。

何が起こっているのでしょうか?ありがとう

10
Albeis

ついにできた!次のようないくつかのパラメーターを変更することで機能しました。

   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ディレクトリに保存する必要がありました。ありがとうございます!

5
Albeis

既存のファイルにアクセスできる場合は、そのファイルにリンクしてください。ダウンロードしたファイル名を次のように指定できます。

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

次に、リンクにIDとデフォルトのhrefを与えるだけです

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

私はこの質問がすでに答えを受け入れていることを知っていますが、私の答えは誰かを助けることができると思います。そのため、問題は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);
5
NutCracker