我正在使用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();
好吧,主要是因为JSON不在乎其格式,而且您自己也不进行任何格式化。如果需要的话,您需要的是javascriptprettyprinter,但是第一个问题是“为什么要关心?”。
这是Javascript食谱中的prettyprinting代码。
实际上,有不同的例子一大堆这里的SO。
更新
好的,现在它正在执行您想要的操作,让我们问一下您是否在做正确的事情。正如一些人指出的那样,您无需传输这些多余的换行符,制表符或空格;效率成本很小,大概在2%至5%之间,但是您永远不知道何时需要几%的成本。
另一方面,我完全同意,能够将JSON输出读取为prettyprinted文本要方便得多。但是还有另一种解决方案- 您可能仍在使用浏览器查看这些结果,因此,使用客户端prettyprinter代替为打印而进行漂亮打印。我在Firefox中使用JSONView forChrome和JSONView。许多调试器也会为您漂亮地打印JSON结果。