Javascript:如何在数组中获取键值json格式



在这个应用程序中,我已经成功地将数组与对象字符串从前端发送到后端。但是,我想从我的mongoDb数据库返回特定类型的JSON格式。我得到的并不是我真正想要的。

Current JSON Format :
"urlPath": [
"{"urlString":"http://www.goals.com"}",
"{"urlString":"http://www.trandent.com"}"   
],
Desired JSON format :
"urlPath": [
{"urlString":"http://www.goals.com"},
{"urlString":"http://www.trandent.com"}   
],

控制器:

exports.addUrl = asyncHandler(async (req, res, next) => {
const urls = Object.assign({},req.body)
const email=req.params.email;
console.log(email)
const{users}=urls

if (urls) {
console.log('url exists')
Resume.findOneAndUpdate(
{
email,
},
{ $push: { urlPath: { $each: users } } },    
{
new: true,
fields: {
urlPath : 1,
},
}
).exec((err, results) => {    
if (err) throw err;
res.json(results);
console.log('Submitted successfully!')     
});
}
});

下面是客户端代码:

handleSubmit(event) {
const { user } = this.props.auth;
const email=user.email
const frmData = new FormData();
this.state.users.forEach((user) =>
frmData.append('users',JSON.stringify(user))
);
console.log(frmData);


axios.post(`/api/url/${email}`,frmData).then(
(res) => {
alert('Submitted successfully!');
},
(err) => {
if (err.response.status === 500) alert(err.response.data);
}
);
event.preventDefault();
}

我如何在后台操作数据,给我所需的JSON输出如上所述?

你必须遍历数组和json解析每个元素,幸运的是javascript有array .prototype.map和json。解析,这使它变得微不足道。下面的代码可以做到。

let parsedData = {}
parsedData.urlPath = rawData.urlPath.map((rawEntry) => JSON.parse(rawEntry))

最新更新