使用Node.js并且对软件来说还是新手。然而,这是我在香草前端时代所困扰的事情。我有一个简单的html.get流
https.get(url, (res)=>{
res.setEncoding('utf8');
let body = '';
res.on('data', (data)=>{
body += data;
});
res.on('end', ()=>{
body = JSON.parse(body);
//console.log(typeof body);
callback(body);
})
})
使用回调函数将文件返回到我的网页
function callback(body){
res.send(body);
}
我遇到的问题是我发送到服务器的文件,即var = body,文件是......不易读取的。我不确定这是否完全正确,所以这可能是一个更好的解释:
这就是我想要的:
{
"title": "Google Custom Search - lectures",
"totalResults": "970000000",
"searchTerms": "lectures",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "[REDACTED]"
}
所有空格都完整无缺。这就是get的URL给出的内容。然而,在收到它并将其与我的算法连接/解析后,我得到:
{"title":"Google Custom Search - lectures","totalResults":"970`0000","searchTerms":"lectures","count":10,"startIndex":11,"inputEncoding":"utf8","outputEncoding":"utf8","safe":"off","cx":"[REDACTED]"}]}
没有任何白色空格或任何东西。它只是作为文本块而出现的。我(希望)我做错了什么,当我使用html.get调用时,有一种方法可以保留原始格式。
我最初的计划是使用一些正则表达式魔法'将其格式化为更易读,但应该有另一种方式,我希望考虑到原始URL已正确格式化它。我正在处理一个大的JSON文件,因此更易读的格式会很好。我不确定我是否完美地解释了我的情景,这是我的第一个Stack问题,但如果不是,请告诉我。谢谢!
答案 0 :(得分:1)
您可以编写一个简单的函数来按照您希望的方式格式化JSON。您可能会发现需要一种不同的日志格式与网页等格式。这包含了JSON.stringify方法(这里有详细记录:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify并且在这里:
https://www.w3schools.com/js/js_json_stringify.asp
word @! word
输出看起来像这样:
var data = {"title":"Google Custom Search - lectures","totalResults":"970`0000","searchTerms":"lectures","count":10,"startIndex":11,"inputEncoding":"utf8","outputEncoding":"utf8","safe":"off","cx":"[REDACTED]"};
function prettyPrintJSON(data, space = 2) {
return JSON.stringify(data, null, space);
}
console.log(prettyPrintJSON(data));
这是一个JSFiddle示例: