[英]How to set a deeply nested JSON value?
对于下面的JSON,我想将项目添加/更新为“奖励”。 有什么办法可以直接放置变量{“ name”:“ ham”,“ bonus”:12}吗?
{
"abilities": {
"FGI": {
"score": 10,
"mod": 1,
"bonuses": [
{
"name": "spam",
"bonus": 1
},
{
"name": "eggs",
"bonus": 1
}
]
}
}
}
注意:我应该阐明“ JSON”是从JSON字符串构建的Python对象。
abilities.FGI.bonuses.push({“ name”:“ ham”,“ bonus”:12});
编辑或:
abilities [“ FGI”] [“ bonuss”]。push(..);
那会很有趣的! 实际上并没有一种简单的(内置)方法。 在markusf的回答中,他提到最后推动项目,但这只是问题的一半。 如果要确保其中不存在“火腿”物品,则必须使用以下函数遍历该物品:
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中的东西。 抱歉,您可以完全忽略我的答案,也可以翻译它,就像在js中一样。 哈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.