JSONをローカルテキストファイルに保存するにはどうすればよいですか


84

次のようなJavaScriptオブジェクトがあるとします。

  var data = {
      name: "cliff",
      age: "34",
      name: "ted",
      age: "42",
      name: "bob",
      age: "12"
    }

var jsonData = JSON.stringify(data);

JSONに変換するためにそれを文字列化します。このJSONをローカルテキストファイルに保存して、メモ帳などで開くにはどうすればよいですか。

回答:


184

Node.js:

var fs = require('fs');
fs.writeFile("test.txt", jsonData, function(err) {
    if (err) {
        console.log(err);
    }
});

ブラウザ(webapi):

function download(content, fileName, contentType) {
    var a = document.createElement("a");
    var file = new Blob([content], {type: contentType});
    a.href = URL.createObjectURL(file);
    a.download = fileName;
    a.click();
}
download(jsonData, 'json.txt', 'text/plain');

3
ここで紹介するようにそれは、可能です、あなただけのタイプ=ファイルを入力タグを使用する必要があります。stackoverflow.com/questions/13709482/...
ラファウŁużyński

11
私が[object Object]これをするとき私は得る
ジャック

37
@JackNicholson私もちょうど[object Object]..オブジェクト自体ではなく、JSON.stringify()最初に呼び出して、その値を渡す必要がありました
ne1410s 2017年

1
それは私にとってはうまくいきましたが、ファイルを置き換えたくなく、代わりにファイルにテキストを追加したい場合はどうなりますか?
Cesar Leonardo OchoaContreras19年

4
その後a.click()revokeObjectURLファイルへの参照を保持しないようにブラウザに通知するために呼び出す必要があります。URL.revokeObjectURL(a.href).詳細:developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL
andreivictor

8

これが純粋なjsの解決策です。あなたはhtml5saveAsでそれをすることができます。たとえば、このライブラリが役立つ可能性があります:https//github.com/eligrey/FileSaver.js
デモを見てください:http//eligrey.com/demos/FileSaver.js/
PS json saveに関する情報はありませんが、ファイルタイプをに"application/json"、フォーマットをに変更して行うことができます.json


「application / json」と.jsonはhtmlファイルシステムでうまく機能します。また、これを使用して、「JSONの予期しないトークン?」などのjson解析エラーを防止します。ありがとう。
アジャイシン

5

ローカルデータをtxtファイルに保存するのが私の解決策です。

function export2txt() {
  const originalData = {
    members: [{
        name: "cliff",
        age: "34"
      },
      {
        name: "ted",
        age: "42"
      },
      {
        name: "bob",
        age: "12"
      }
    ]
  };

  const a = document.createElement("a");
  a.href = URL.createObjectURL(new Blob([JSON.stringify(originalData, null, 2)], {
    type: "text/plain"
  }));
  a.setAttribute("download", "data.txt");
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
}
<button onclick="export2txt()">Export data to local txt file</button>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.