使用 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]"}]}
没有任何空格或任何东西。它只是以“文本 block ”的形式出现。我(希望)我做错了什么,当我使用 html.get 调用时,有一种方法可以保留原始格式。
我最初的计划是使用一些“正则表达式魔法”来格式化它以使其更具可读性,但我希望考虑到原始 URL 可以正确格式化它,应该有另一种方法。我正在处理一个大的 JSON 文件,因此更具可读性的格式会更好。我不确定我是否完美地解释了我的场景,这是我的第一个堆栈问题,但如果没有,请告诉我。谢谢!
最佳答案
您可以编写一个简单的函数来按照您想要的方式格式化 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 .
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));
输出如下所示:
{
"title": "Google Custom Search - lectures",
"totalResults": "970`0000",
"searchTerms": "lectures",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "[REDACTED]"
}
这是一个 JSFiddle 示例:
关于javascript - 创建 'readable' JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49892098/