将新的键值对推送到 json
Posted
技术标签:
【中文标题】将新的键值对推送到 json【英文标题】:Pushing new key value pair to 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")
【参考方案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);
【讨论】:
以上是关于将新的键值对推送到 json的主要内容,如果未能解决你的问题,请参考以下文章
在 React 中使用 useContext 和 useReducer 创建新的键值对