json - 向 JSON 添加新属性

标签 json node.js sequelize.js

使用 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/

    相关文章:

    node.js - 无法弄清楚我的模型出了什么问题

    node.js - 使用 Sequelize.js ORM 查询多个模型

    java - 如何使用java合并json数组?

    java - 尝试传递 customAdapter 时出现空指针异常?

    node.js - npm5 不接受代理设置

    javascript - 如何按日期对对象进行分组?

    javascript - 根据父值过滤嵌套的 JSON

    JavaScript 和 JSON

    javascript - 如何使用 Node.js 将音频样本数组写入 wav 文件?

    node.js - 如何计算sequelize js中的关联