programing

fs.writeFileSync를 사용하여 JSON 개체를 JSON 파일에 쓰는 중

easyjava 2023. 4. 4. 23:21
반응형

fs.writeFileSync를 사용하여 JSON 개체를 JSON 파일에 쓰는 중

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

[object Object]

실제로 쓰는 코드는 다음과 같습니다.

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

'output'은 JSON 개체이며 파일이 이미 있습니다.더 필요한 정보가 있으면 알려주세요.

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

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

동기식 접근 방식을 사용하면 안 된다고 생각합니다. 비동기식으로 데이터를 파일에 쓰는 것이 더 낫습니다. 또한 스트링화(Stringify)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));

Web 서버에 데이터를 송신할 때는, 데이터는 문자열(여기서)이어야 합니다.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}`);

도움이 됐으면 좋겠다.

여기 변형된 버전이 있습니다.fs다음 약속을 사용합니다.

const fs = require('fs');

await fs.promises.writeFile('../data/phraseFreqs.json', JSON.stringify(output)); // UTF-8 is default

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

반응형