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

|| 我正在使用Node.js将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 prettyprinter,但是第一个问题是“为什么要关心?” 这是Javascript食谱中的漂亮代码。 实际上,SO上有很多不同的示例。 更新 好的,现在它正在执行您想要的操作,让我们询问您是否在做正确的事情。正如一些人指出的那样,您无需传输那些多余的换行符,制表符或空格;效率成本很小,大概在2%至5%之间,但是您永远不知道何时需要几%的成本。 另一方面,我完全同意,能够将JSON输出读取为prettyprinted文本要方便得多。但是还有另一种解决方案-您可能仍在使用浏览器查看这些结果,因此,除了使用客户端漂亮的打印机来进行漂亮的打印以进行传输之外,您还可以使用它。我在Firefox中使用JSONView for Chrome和JSONView。许多调试器也会为您漂亮地打印JSON结果。     
使用
JSON.stringify(object, null, 4)
,其中
4
是要用作缩进单位的空格数。如果需要制表符,也可以使用
\"\\t\"
。这实际上是ECMAScript 5规范的一部分,并记录在MDN中。     
我使用了发现可行的两步过程:
var output = JSON.parse(insert_json_here);
var print_to_file = JSON.stringify(output, null, \"\\t\")
    
您应该查看underscore-cli-这是用于检查和处理JSON数据的命令行工具。     

要回复问题请先登录注册