我想为d3世界地图(基于:http://datamaps.github.io/)和d3条形图(基于:https://bl.ocks.org/mbostock/3885304)加载一个json文件。
我的JSON看起来像这样:
{
"CHE": {"costOfLivingIndex": "123.10", "propertyPriceToIncomeRatio": "123.10", "qualityOfLifeIndex": "208.54", "name": "Switzerland", "purchasingPower": "178.74", "pollutionIndex": "28.73", "trafficCommuteTimeIndex": "8.57", "health Care Index": "68.88", "climateIndex": "23.02", "safetyIndex": "74.27"},
"DNK": {"costOfLivingIndex": "84.88", "propertyPriceToIncomeRatio": "84.88", "qualityOfLifeIndex": "206.49", "name": "Denmark", "purchasingPower": "142.14", "pollutionIndex": "25.64", "trafficCommuteTimeIndex": "5.85", "health Care Index": "81.89", "climateIndex": "29.93", "safetyIndex": "74.33"}
etc...
}
我选择这张d3世界地图。但是,我想知道如何迭代对象的属性。如果我这样做:
console.log(data.DNK.name);
我得到了名字,但如何获得包含所有名称(或其他值)的列表?
答案 0 :(得分:0)
我们可以做类似的事情:
for (var key in data) {
alert(key + " -> " + data[key]);
}
您应该能够通过数据[key]
获取其他参数答案 1 :(得分:0)
因为它已经是JSON对象,所以你可以在不使用JSON.parse
的情况下循环它,如果它是字符串或者某些东西你将使用它。
for(var key in data){
console.log(key);
for(var k in data[key]){
console.log(k,data[key][k]);
}
}