一尘不染

在Node.js中写入格式化的JSON

node.js

我正在使用Node.js将JSONPOST到PostBin,但是数据格式错误(如您在此处所看到: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();

阅读 297

收藏
2020-07-07

共1个答案

一尘不染

好吧,主要是因为JSON不在乎其格式,而且您自己也不进行任何格式化。如果需要的话,您需要的是javascriptprettyprinter,但是第一个问题是“为什么要关心?”。

这是Javascript食谱中的prettyprinting代码。

实际上,有不同的例子一大堆这里的SO。

更新

好的,现在它正在执行您想要的操作,让我们问一下您是否在做正确的事情。正如一些人指出的那样,您无需传输这些多余的换行符,制表符或空格;效率成本很小,大概在2%至5%之间,但是您永远不知道何时需要几%的成本。

另一方面,我完全同意,能够将JSON输出读取为prettyprinted文本要方便得多。但是还有另一种解决方案-
您可能仍在使用浏览器查看这些结果,因此,使用客户端prettyprinter代替为打印而进行漂亮打印。我在Firefox中使用JSONView forChromeJSONView。许多调试器也会为您漂亮地打印JSON结果。

2020-07-07