javascript - 创建 'readable' JSON 格式

标签 javascript node.js http

使用 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 示例:

https://jsfiddle.net/uovtaxq3/3/

关于javascript - 创建 'readable' JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49892098/

相关文章:

javascript - 使用 Javascript 在数组数组中搜索第一个索引

javascript - 避免在 TLS 客户端 Hello 中发送 TLS_EMPTY_RENEGOTIATION_INFO_SCSV 密码

node.js - Node 使用的是 package.json 文件吗?

android - 如何编写代码来检查 Lollipop 的互联网连接?

http - Golang Cookie Max-Age 与过期

javascript - 如何抑制 `This document is trying to print. Do you want to allow this?`

javascript - 如何使用新的图标更改我的网站图标

javascript - 使用 javascript 将 JSON 数组转换为单独的变量

node.js - aws lambda 上的 json 模式验证

javascript - 通过 Angular http 请求发布文件