gpt4 book ai didi

javascript - 存储不带括号和引号的 JSON

转载 作者:行者123 更新时间:2023-12-03 03:59:28 25 4
gpt4 key购买 nike

所以我有一个 Nodejs 服务器,它接收一个 JSON 对象,然后将其放入变量中并通过电子邮件发送该内容。这是我的代码:

app.post('/sendEmail', function(req, res) {
var answers = req.body.answers;
var str = JSON.stringify(answers, null, "\t"); // stringify with tabs inserted at each level
console.log(answers);
var fromEmail = new helper.Email('ahun...ok.com');
var toEmail = new helper.Email('ahun...ok.com');
var subject = 'Survey Completion';
var content = new helper.Content('text/plain', str);


var mail = new helper.Mail(fromEmail, subject, toEmail, content);

var sg = require('sendgrid')(process.env.SENDGRID_API_KEY);
var request = sg.emptyRequest({
method: 'POST',
path: '/v3/mail/send',
body: mail.toJSON()
});

sg.API(request, function (error, response) {
if (error) {
console.log('Error response received');
}
});

res.send("Success");

});

如您所见,我使用 stringify 使 JSON 更加漂亮,但它仍然具有 JSON 中的所有粗括号、引号和空格。有没有办法以更易读的形式存储 JSON?

电子邮件内容在这里:var content = new helper.Content('text/plain', str);因此可读的 JSON 需要存储在具有格式等的变量中。

如有任何帮助,我们将不胜感激。谢谢

编辑:这是正在发送的 JSON 对象:

{

"question1": {
"Reliable": true,
"Knowledgeable": true,
"Helpful": true,
"Courteous": true
},
"question2": {
"checked": "Extremely Well"
},
"question3": {
"checked": "Extremely Well"
},
"question4": {
"checked": 3
},
"fullName": "Test",
"address": "Test",
"city": "Test",
"state": "Test",
"zip": "321",
"areaCode": "321",
"phone": 1234567896,
"call": true,
"lifeInsurance": "Yes",
"brokerage": "Yes",
"bankName": "Regions"
}

使用上面的 JSON 对象,我想将其格式化为如下所示:

问题 1:可靠、知识渊博、乐于助人、有礼貌。

问题 2:非常好。

问题 3:非常好。

问题 4:3。

全名:测试。

地址:测试。

...

经纪业务:是的。

银行名称:地区。

最佳答案

数据只需要一些处理

var data = {
"question1": {
"Reliable": true,
"Knowledgeable": false,
"Helpful": true,
"Courteous": true
},
"question2": {
"checked": "Extremely Well"
},
"question3": {
"checked": "Extremely Well"
},
"question4": {
"checked": 3
},
"fullName": "Test",
"address": "Test",
"city": "Test",
"state": "Test",
"zip": "321",
"areaCode": "321",
"phone": 1234567896,
"call": true,
"lifeInsurance": "Yes",
"brokerage": "Yes",
"bankName": "Regions"
};

var result = Object.entries(data).reduce((result, [key, value]) => {
key = key.replace(/([A-Z]|\d+)/g, ' $1').replace(/^(.)/, (unused, p1) => p1.toUpperCase());
if (!['string', 'number', 'boolean'].includes(typeof value)) {
value = Object.entries(value).map(([key, value]) => (typeof value == 'boolean') ? (value ? key : undefined) : value).filter(v => v !== undefined).join(',');
}
result.push(`${key}: ${value}`);
return result;
}, []);
console.log(result.join('\n'));

注意:我将其中一个 true 更改为 false 以检查逻辑

在 Node 8.1.2 中测试

关于javascript - 存储不带括号和引号的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44792322/

25 4 0
文章推荐: javascript - swfobject.embedSWF 不显示视频
文章推荐: javascript - Redux 将初始状态设置为 API 响应
文章推荐: javascript - 单个 ajax 请求更新 2 个不同的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com