developer tip

fs.writeFileSync를 사용하여 JSON 파일에 JSON 객체 쓰기

copycodes 2020. 9. 9. 08:10
반응형

fs.writeFileSync를 사용하여 JSON 파일에 JSON 객체 쓰기


JSON 개체를 JSON 파일에 쓰려고합니다. 코드는 오류없이 실행되지만 객체의 내용이 기록 된 대신 JSON 파일에 기록되는 모든 내용은 다음과 같습니다.

[object Object]

이것은 실제로 작성하는 코드입니다.

fs.writeFileSync('../data/phraseFreqs.json', output)

'출력'은 JSON 개체이며 파일이 이미 있습니다. 더 많은 정보가 필요하면 알려주세요.


개체를 문자열 화해야합니다.

fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output));

동기식 접근 방식을 사용해서는 안된다고 생각합니다. 비동기식으로 파일에 데이터를 쓰는 output것이 object.

참고 : output이 문자열이면 인코딩을 지정하고 flag옵션도 기억하십시오 . :

const fs = require('fs');
const content = JSON.stringify(output);

fs.writeFile('/tmp/phraseFreqs.json', content, 'utf8', function (err) {
    if (err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 

파일에 데이터를 쓰는 동기 방식이 추가되었지만 사용 사례를 고려하십시오. 비동기 실행과 동기 실행, 이것이 실제로 무엇을 의미합니까?

const fs = require('fs');
const content = JSON.stringify(output);

fs.writeFileSync('/tmp/phraseFreqs.json', content);

세 번째 인수를 전달하여 json을 사람이 읽을 수 있도록 만듭니다 stringify.

fs.writeFileSync('../data/phraseFreqs.json', JSON.stringify(output, null, 4));

웹 서버로 데이터를 보낼 때 데이터는 문자열이어야합니다 ( 여기 ). 을 사용하여 JavaScript 객체를 문자열로 변환 할 수 있습니다 JSON.stringify(). 다음 은 작동하는 예입니다.

var fs = require('fs');

var originalNote = {
  title: 'Meeting',
  description: 'Meeting John Doe at 10:30 am'
};

var originalNoteString = JSON.stringify(originalNote);

fs.writeFileSync('notes.json', originalNoteString);

var noteString = fs.readFileSync('notes.json');

var note = JSON.parse(noteString);

console.log(`TITLE: ${note.title} DESCRIPTION: ${note.description}`);

도움이되기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/42179037/writing-json-object-to-a-json-file-with-fs-writefilesync

반응형