[javascript] Node.js에 형식화 된 JSON 쓰기

Node.js를 사용하여 JSON을 PostBin에 POST하지만 데이터 형식이 잘못되었습니다 (여기에서 볼 수 있듯이 http://www.postbin.org/1cpndqw ).

이것은 tesT에 사용하는 코드입니다.

var http = require('http');

var options = {
  host: 'www.postbin.org',
  port: 80,
  path: '/1cpndqw',
  method: 'POST'
};

var req = http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.write(JSON.stringify({ a:1, b:2, c:3 }, null, 4));
req.end();



답변

글쎄요, 주로 JSON은 형식화 방식에 신경 쓰지 않고 직접 형식화를 수행하지 않기 때문입니다. 당신이 필요로하는 것은 자바 스크립트 프리티 프린터인데, 첫 번째 질문은 “당신은 왜 관심이 있습니까?”입니다.

다음 은 Javascript Recipes 의 예쁜 인쇄 코드입니다.

실제로 여기 에는 여러 가지 다른 예가 있습니다 .

최신 정보

좋아, 이제 당신이 원하는 것을하고있다. 당신이 옳은 일을하고 있는지 물어 보자. 여러 사람이 지적했듯이 추가 줄 바꿈과 탭 또는 공백을 전송할 필요가 없습니다. 효율성 비용은 2 ~ 5 % 정도로 적지 만 언제 몇 %가 필요할지 알 수 없습니다.

반면에 JSON 출력을 예쁜 텍스트로 읽을 수있는 것이 훨씬 더 편리하다는 데 완전히 동의합니다. 그러나 또 다른 해결책이 있습니다. 아마도 이러한 결과를보기 위해 브라우저를 사용하고있을 것이므로 전송을 위해 예쁘게 인쇄하는 대신 클라이언트 측 예쁜 프린터를 사용하십시오. Chrome 에는 JSONView를 사용 하고 Firefox 에서는 JSONView를 사용 합니다. 많은 디버거도 JSON 결과를 출력합니다.


답변

사용 공간의 수는 들여 쓰기의 단위로 사용합니다. 탭을 원하는 경우 에도 사용할 수 있습니다 . 이것은 실제로 ECMA 스크립트 5 스펙의 일부 , 및 MDN 문서화 .JSON.stringify(object, null, 4)4"\t"


답변

나는 두 단계의 프로세스를 사용하여 작동하는 것으로 나타났습니다.

var output = JSON.parse(insert_json_here);
var print_to_file = JSON.stringify(output, null, "\t")


답변

당신은 체크 아웃해야합니다 강조-CLI – 그것은 JSON 데이터를 검사하고 처리하기위한 명령 줄 도구입니다.


답변