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();
コンパイラはエラーなしで実行されますが、テキストファイルを取得できません。ディレクトリの一部へのパスも使用しましたが、何も使用していません。
何が起こっているのでしょうか?ありがとう
ついにできた!次のようないくつかのパラメーターを変更することで機能しました。
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ディレクトリに保存する必要がありました。ありがとうございます!
既存のファイルにアクセスできる場合は、そのファイルにリンクしてください。ダウンロードしたファイル名を次のように指定できます。
<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>
私はこの質問がすでに答えを受け入れていることを知っていますが、私の答えは誰かを助けることができると思います。そのため、問題は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);