如何用Node.js编写格式化的JSON?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

我使用Node.js将POST JSON POST到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();
提问于
用户回答回答于

那么,主要是因为JSON不关心它是如何格式化的,而且你自己也没有做任何格式化。你需要的是一个JavaScript漂亮的打印机,如果你在意,但第一个问题是“你为什么在意?”

这是来自Javascript Recipes 的一个漂亮的代码。

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

好吧,现在它正在做你想做的事情,让我们问你是否做得正确。正如几位人士指出的那样,不需要传输这些额外的换行符和制表符或空格; 效率成本很低,可能在2-5%左右,但你永远不知道什么时候可能需要几个百分点。

另一方面,我完全同意,能够将JSON输出作为漂亮的文本读取会更加方便。但还有另一种解决方案 - 你仍然可能使用浏览器来查看这些结果,所以不要使用漂亮的打印纸来传输,而是使用客户端的漂亮打印机。我在Chrome中使用JSONView和Firefox中的JSONView。许多调试器也会打印JSON结果。

用户回答回答于

扫码关注云+社区