对于下面的JSON,我想将项目添加/更新为“奖金”。有没有办法可以直接输入变量{“name”:“ham”,“bonus”:12}?
{
"abilities": {
"FGI": {
"score": 10,
"mod": 1,
"bonuses": [
{
"name": "spam",
"bonus": 1
},
{
"name": "eggs",
"bonus": 1
}
]
}
}
}
注意:我应该澄清“JSON”是一个用JSON字符串构建的Python对象。
答案 0 :(得分:1)
abilities.FGI.bonuses.push({“name”:“ham”,“bonus”:12});
编辑或:
能力[ “FGI”] [ “奖金”]推(..);
答案 1 :(得分:0)
那将是一个有趣的!实际上并没有一种简单的(内置)方法。在马库斯夫的回答中,他提到最后推动项目,但这只是你问题的一半。如果你想确保那里还没有“ham”项,你必须使用这样的函数循环它:
function array_has_item_already(array, key, look_for_key_value) {
for( var i = 0; i < array.length; i++) {
if( typeof array[i][key] != 'undefined' && array[i][key] == look_for_key_value )
return array[i];
}
return false;
}
你会这样称呼它,如果找不到该项,它将返回false:
array_has_item_already(abilities.FGI.bonuses, "name", "ham");
我会留给你推出功能,让它更新或推送或其他什么。玩得开心!
<强>更新强>
我刚刚意识到你正在寻找python中的东西。 Welp,你可以完全忽略我的答案,或翻译它,因为它在js中。 HA。