gpt4 book ai didi

json - 向 JSON 添加新属性

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

使用 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);

你能帮我弄清楚问题出在哪里吗?

EDIT



代码块 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)

最佳答案

您需要调用.get在您的模型实例上,然后为其附加额外的属性:

var varAddOns = { "id" : 5, "Name" : "Cheese"};

global.meal.findOne(
{
where: { id: 5 }
}).then(varMeal => {
var obj = {};
obj = varMeal.get();
obj.addons = varAddOns;
res.send(obj);
});

一些东西:
  • 当您调用 findOne , Sequelize 返回一个模型实例,而不是带有您的数据的普通 JS 对象。
  • 如果您想添加额外的属性以发送给您的用户,您首先需要将您的模型实例转换为带有您的数据的 JS 对象。您可以调用 varMeal.get() .从那里,您可以为其添加额外的属性。
  • 无需在变量前面加上“var”。最好简单地命名你的变量 meal
  • 关于json - 向 JSON 添加新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49220827/

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