이것은 해결 된 문제처럼 보이지만 해결책을 찾을 수 없습니다.
기본적으로 JSON 파일을 읽고 키를 변경하고 새 JSON을 동일한 파일로 다시 씁니다. 모든 것이 작동하지만 JSON 형식이 느슨합니다.
{
name:'test',
version:'1.0'
}
나는 얻다
{name:'test',version:'1.1'}
Node.js에서 올바른 형식의 JSON을 파일에 쓰는 방법이 있습니까?
이것은 해결 된 문제처럼 보이지만 해결책을 찾을 수 없습니다.
기본적으로 JSON 파일을 읽고 키를 변경하고 새 JSON을 동일한 파일로 다시 씁니다. 모든 것이 작동하지만 JSON 형식이 느슨합니다.
{
name:'test',
version:'1.0'
}
나는 얻다
{name:'test',version:'1.1'}
Node.js에서 올바른 형식의 JSON을 파일에 쓰는 방법이 있습니까?
답변:
JSON.stringify
세 번째 매개 변수는 예쁜 인쇄를위한 공백 삽입을 정의합니다. 문자열 또는 숫자 (공백 수) 일 수 있습니다. 노드는로 파일 시스템에 쓸 수 있습니다 fs
. 예:
var fs = require('fs');
fs.writeFile('test.json', JSON.stringify({ a:1, b:2, c:3 }, null, 4));
/* test.json:
{
"a": 1,
"b": 2,
"c": 3,
}
*/
MDN 의 JSON.stringify () 문서 , Node fs docs를 참조하십시오.
"\t"
탭 대신 4를 사용 하십시오.
나는 이것이 유용 할 것이라고 생각한다 ... 나는 예제 코드를 좋아한다 :)
var fs = require('fs');
var myData = {
name:'test',
version:'1.0'
}
var outputFilename = '/tmp/my.json';
fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log("JSON saved to " + outputFilename);
}
});
tmp
폴더가 존재 하는지 확인하십시오 . 그렇지 않으면 실패 할 수 있습니다.
tmp
폴더가 기본적으로 존재합니다
객체를 예쁘게 인쇄하고 유효한 JSON으로 내 보내지 않으려면을 사용할 수 있습니다 console.dir()
.
구문 강조, 스마트 들여 쓰기를 사용하고 키에서 따옴표를 제거하고 출력을 예쁘게 만듭니다.
const jsonString = `{"name":"John","color":"green",
"smoker":false,"id":7,"city":"Berlin"}`
const object = JSON.parse(jsonString)
console.dir(object, {depth: null, colors: true})
후드 아래의 바로 가기입니다 console.log(util.inspect(…))
. 유일한 차이점은 inspect()
개체에 정의 된 사용자 지정 함수를 무시한다는 것 입니다.
JSON.stringify
주기적 객체를 질식util.inspect
시키고 유효한 JSON을 생성하지 않습니다. : \ 나는 NodeJS 꽤 인쇄 JSON에는 [기본] 솔루션을 찾을 수 없습니다