【问题标题】:Pushing new key value pair to json将新的键值对推送到 json
【发布时间】:2017-03-07 02:19:12
【问题描述】:

这是我的 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"});

但我总是得到 ​​p>

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

我该怎么做。请帮忙

【问题讨论】:

  • Object.assign(data.user_data, {"name": "tom"})

标签: jquery arrays json node.js object


【解决方案1】:

您想将另一个对象附加到 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)

【讨论】:

  • 当我尝试data["user_data"]["age"] = "tom";时收到此错误TypeError: Cannot set property 'age' of undefined
  • 你的对象需要在 sn-p 中看起来像
【解决方案2】:

简单)

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

然后

o.name = "tom"

【讨论】:

    【解决方案3】:

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

    data.name = "tom";
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 1970-01-01
        • 2020-06-28
        • 2018-02-07
        相关资源
        最近更新 更多