[json] 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,
}
*/

MDNJSON.stringify () 문서 , Node fs docs를 참조하십시오.


답변

나는 이것이 유용 할 것이라고 생각한다 … 나는 예제 코드를 좋아한다 🙂

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


답변

객체를 예쁘게 인쇄하고 유효한 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()개체에 정의 된 사용자 지정 함수를 무시한다는 것 입니다.


답변

이것을 어디에도 저장하고 싶지 않지만 디버깅 목적으로 객체를 보는 것입니다.

console.log(JSON.stringify(object, null, "  "));

들여 쓰기를 조정하기 위해 세 번째 매개 변수를 변경할 수 있습니다.


답변

이건 어때?

console.table(object)

견본


답변