将新的键值对推送到json

时间:2016-10-25 06:45:17

标签: jquery arrays json node.js object

这是我的Json输出

 "user_data": {
    "_id": "5806319c08756025b4c7287b",
    "email": "a@adsfd.com",
    "password": "cool123",
  }

如何添加新的键值对以便我可以

 "user_data": {
    "_id": "5806319c08756025b4c7287b",
    "email": "a@adsfd.com",
    "password": "cool123",
    "name" : "tom"
  }

我试过这个

data.push({"name": "tom"});

但我总是得到

 "user_data": {
    "_id": "5806319c08756025b4c7287b",
    "email": "a@adsfd.com",
    "password": "cool123",
  }

我该怎么办?帮助请

4 个答案:

答案 0 :(得分:5)

简单地)

  o = {
    "_id": "5806319c08756025b4c7287b",
    "email": "a@adsfd.com",
    "password": "cool123",
  }

然后

o.name = "tom"

答案 1 :(得分:3)

您希望追加到user_data而不是整个对象的另一个对象

尝试使用数组表示法

data["user_data"]["name"] = "tom";

data.user_data.name = "tom";

演示:

data = {"user_data": {
    "_id": "5806319c08756025b4c7287b",
    "email": "a@adsfd.com",
    "password": "cool123",
  }};
  
  data["user_data"]["name"] = "tom";
  console.log(data)

答案 2 :(得分:2)

push方法用于将元素推送到数组而不是用于向对象添加属性。

您可以使用Object.assign复制其他对象的值,或使用点或括号表示法直接设置属性。

Object.assign(data.user_data, {"name": "tom"})
// or
data.user_data.name = "tom";



var data = {
    "user_data": {
      "_id": "5806319c08756025b4c7287b",
      "email": "a@adsfd.com",
      "password": "cool123",
    }
  },
  data1 = {
    "user_data": {
      "_id": "5806319c08756025b4c7287b",
      "email": "a@adsfd.com",
      "password": "cool123",
    }
  };

Object.assign(data.user_data, {
    "name": "tom"
  })
  // or
data1.user_data.name = "tom";

console.log(data, data1);




答案 3 :(得分:2)

尝试这样,它会将您的新密钥直接添加到您的对象

data.name = "tom";