【发布时间】:2018-08-19 14:57:06
【问题描述】:
使用 Node js 和 Sequelize ORM,我得到了一个数据集。我需要为接收到的数据添加一个新属性并将其发送到客户端。这是我尝试过的。
代码块 1
var varAddOns = { "id" : 5, "Name" : "Cheese"};
global.meal.findOne(
{
where: { id: 5 }
}).then(varMeal => {
var obj = {};
obj = varMeal;
obj.addons = varAddOns;
res.send(obj);
});
它返回一个如下所示的 json。 (实际上它不包含“插件”数据)
代码块 2
{
"id": 12,
"mealName": "Burger",
"description": "Oily food",
}
但实际上我想要的是,
代码块 3
{
"id": 12,
"mealName": "Burger",
"description": "Oily food",
"addons" : {
"id" : 5,
"Name" : "Cheese"
}
}
我尝试了类似下面的方法,但它也不起作用。 (它返回与“代码块 2”相同的 json。)
代码块 4
var newJson = {};
newJson = JSON.stringify(varMeal);
newJson['addons'] = varAddOns;
var retVal = JSON.parse(newJson);
res.send(retVal);
你能帮我弄清楚问题出在哪里吗?
编辑
代码块 5
var newJson = {};
newJson = varMeal;
newJson['addons'] = varAddOn;
var retVal = newJson;// JSON.parse(newJson);
res.send(retVal);
我也尝试了“代码块 5”。结果与“代码块 2”相同。当我使用 JSON.parse(newJson) 时,它被抛出了一个错误。 (错误是 位置 1 处 JSON 中的意外标记 o)
【问题讨论】:
-
“你能帮我弄清楚问题出在哪里吗?” -- 你不明白JSON 是什么。它是一些数据结构的文本表示。您希望将属性添加到数据结构(在将其表示为 JSON 之前)而不是 JSON。 JSON 表示是一个字符串,向它添加属性没有帮助。
标签: json node.js sequelize.js