gpt4 book ai didi

json - 在 Node 中将 JSON 漂亮地打印到文件中

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:04 24 4
gpt4 key购买 nike

所以我有一个非常大的 JSON 数据,我通过 AngularJS 将其发送到 Node 服务器。这是我用来发送数据的过程:-

var send_data="data="+encodeURIComponent(JSON.stringify($scope.records,null,4));
$http({
method : 'POST',
url : 'http://localhost:8888/updateDetails',
data : send_data,
responseType : "json",
headers: {
"Content-Type": 'application/x-www-form-urlencoded'
}
}).success(function(data, status, headers, config){
console.log(data);
});

我成功地通过上面的代码将 pretty-print JSON 发送到 Node 服务器。但是,当我使用以下命令将其写入文件时:-

jsonfile.writeFile(file, JSON.parse(req['body']['data']), function (err) {
console.error(err);
});

经过一些测试,我发现错误出在 JSON.parse 语句中。有什么方法可以将 JSON 漂亮地打印到文件中吗?

最佳答案

使用JSON.stringify(data[, replacer[, indent]]) :

jsonfile.writeFile(file, JSON.stringify(JSON.parse(req.body.data), 0, 4), function (err) {
console.error(err);
});

您可能也可能不需要解析响应正文 - 我相信构建器中的 responseType: "json" 会自动为您解析它:

jsonfile.writeFile(file, JSON.stringify(req.body.data, 0, 4), function (err) {
console.error(err);
});

这是一个完整的独立示例,说明其工作原理:

var fs = require('fs');
var req = JSON.parse('{"body": {"data": "Some text."}}');
fs.writeFile('test.json', JSON.stringify(req.body, 0, 4), function (err) {

});

假设您通过 HTTP 监听器或框架(如 )处理 POST 请求?您是否使用主体解析器来解析传入的 JSON?

让我们尝试一下:

  1. console.log(req.body) 以确保您的服务器识别该请求。
  2. 它是一个 JSON 字符串吗?有效吗?或者它是一个 javascript 对象(即已经被解析)?
  3. 如果它已被解析,那么我的第二个建议将起作用。如果尚未解析,请像我在第一个示例中所做的那样解析它。

关于json - 在 Node 中将 JSON 漂亮地打印到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31573164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com