我有一个看起来像这样的对象
{
"_id": "DEADBEEF",
"_rev": "2-FEEDME",
"name": "Jimmy Strawson",
"link": "placeholder.txt",
"entries": {
"Foo": 0
}
}
使用$ .getJSON调用将其读入我的javascript。
所以我有JS对象“回复”,它包含所有这些数据。
我需要附加项目,以便“条目”扩展如下:
{
"_id": "DEADBEEF",
"_rev": "2-FEEDME",
"name": "Jimmy Strawson",
"link": "placeholder.txt",
"entries": {
"Foo": 0,
"Bar": 30,
"Baz": 4
}
}
我试过了
reply['entries'].push({"Bar": 0});
但这不起作用(我认为因为什么都不是数组)
有人可以提供替代方法吗?
答案 0 :(得分:5)
使用 ES2017 ,您可以使用:
curl -v -u user:password http://teamcity.server.url:8111/app/rest/buildQueue --request POST --header "Content-Type:application/xml" --data-binary @build.xml

答案 1 :(得分:4)
这里还有一个,因为为什么不〜见Object.assign
let reply = {"_id":"DEADBEEF","_rev":"2-FEEDME","name":"Jimmy Strawson","link":"placeholder.txt","entries":{"Foo":0}};
Object.assign(reply.entries, {
Bar: 30,
Baz: 4,
'Bar Baz': 0
});
console.log('reply =', reply);

答案 2 :(得分:3)
reply['entries'].push({"Bar": 0})
不起作用,因为entries
不属于Array
类型,只是普通Object
。
使用reply['entries']["Bar"]
或reply.entries.Bar
。见下面的演示:
var reply = {
"_id": "DEADBEEF",
"_rev": "2-FEEDME",
"name": "Jimmy Strawson",
"link": "placeholder.txt",
"entries": {
"Foo": 0,
"Bar": 30,
"Baz": 4
}
}
reply['entries']["Bar"] = 0;
console.log(reply);

答案 3 :(得分:2)
它成为一个对象,所以只需添加你想要的东西: -
reply.entries.Foo = 0
reply.entries.Bar = 30
reply.entries.Baz = 4
或reply["entries"]["Foo"] = 0
或reply.entries["Foo"] = 0
答案 4 :(得分:1)
为了在 JSON 对象中插入新条目,您可以尝试以下方法:
object["someproperty"] = somevalue;
或object.someproperty = somevalue;
假设您已获得变量someproperty
和somevalue
中的键和值,您只需将它们插入:
reply.entries[someproperty] = somevalue
答案 5 :(得分:1)
以下是替代方法:
reply = {
"_id": "DEADBEEF",
"_rev": "2-FEEDME",
"name": "Jimmy Strawson",
"link": "placeholder.txt",
"entries": {
"Foo": 0
}
}
reply.entries.Bar=30;
reply.entries.Baz=4;
reply["entries"]["Bar"]=30;
reply["entries"]["Baz"]=4;