如何解决在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,\"\\t\")
,您应该查看underscore-cli-这是用于检查和处理JSON数据的命令行工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。