为json根动态添加值
Add value to json root dynamically
嗯,我很困惑。我制作了一个json元素,如下所示:
var world = {"county": []};
world.county.push({name: "America", flag: "yes", countries: []});
world.county[0].countries.push({name: "Costa Rica", capital: "San Jose"});
这让我想到了两件事:
- 我将数组与json对象混合使用。如何避免在这种情况下使用数组
- 如何向json根动态添加元素
关于问题2,我面临着一些问题,因为我不知道如何将元素添加到根中,假设我已经尝试过了,但它不起作用:
var index = 0;
var word = {};
world.index.push({name: WA});
因此,通过这种方式,我可以添加元素来迭代之前创建的某个数组。
首先,让我们解决这个问题:只有当它是表示JavaScript对象的字符串时,它才是JSON。您所拥有的是一个对象文字。
现在,对于您的问题,您可以简单地使用向对象添加元素
object.newProperty = value;
至于你想避免使用数组,只需使用数组即可。它们是要使用的正确类型的对象,您不应该为该任务使用任何其他对象。
从Kolink的答案开始。那么,对于你在这里所做的:
var index = 0;
var world = {};
world.index.push({name: "WA"});
看起来您正在尝试向索引为0的world
添加一个属性。假设您正在尝试使用.push()
,那么您似乎希望该属性是一个数组,在这种情况下,您可以这样做:
world[index] = [];
world[index].push({name: "WA"});
假设world
开始时是一个空对象,它将创建以下结构:
{ "0" : [ {name:"WA"} ] }
在一般意义上,要访问变量中的对象属性,请使用[]
数组样式语法。因此:
world["somePropName"]
// does the same thing as
world.somePropName
// so with a variable:
var x = "somePropName";
world[x]
相关文章:
- 正在添加动态第二类Jquery
- 如何在javascript而不是jquery中添加动态列表
- 为图例添加动态色彩标签
- 如何在谷歌表单中添加动态字段
- 如何添加动态Id's并在运行时提取它们
- 在 JavaScript 中添加动态文本
- 如何添加动态表单元素但保留其值(JS)
- 使用AngularJs在自定义TinyMCE编辑器中添加动态数据
- 如何使用JavaScript添加动态HTML内容(DIV)
- javascript初学者:在javascript中添加动态样式
- 如何使用Javascript在html源中添加动态数据
- 向Uploadify添加动态字段
- 如何在 Vue.js 中添加动态组件/部件
- 锚导航与坚持到顶部菜单..需要向锚点添加动态偏移量
- Javascript:添加动态方法
- 向角度对象添加动态功能
- 添加动态文本框时更新动态高度
- JavaScript 运行时错误:无法在 Windows 8 应用中添加动态内容
- 添加动态点击事件
- 添加动态字段以创建特定的 JSON 格式