[javascript] JSON을 로컬 텍스트 파일에 저장하는 방법

다음과 같은 javascript 객체가 있다고 가정합니다.

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

var jsonData = JSON.stringify(data);

JSON으로 변환하기 위해 문자열 화합니다. 이 JSON을 메모장 등에서 열 수 있도록 로컬 텍스트 파일에 저장하려면 어떻게해야합니까?



답변

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


답변

다음은 순수한 js에 대한 해결책입니다. html5 saveAs로 할 수 있습니다. 예를 들어이 lib가 도움이 될 수 있습니다. https://github.com/eligrey/FileSaver.js

데모를보십시오 : http://eligrey.com/demos/FileSaver.js/

PS json 저장에 대한 정보는 없지만 파일 유형을 변경 "application/json"하고 형식을.json


답변

로컬 데이터를 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>


답변