我有一个外部JSON文件。它看起来像这样:
{
"type":"FeatureCollection",
"totalFeatures":1,
"features":
[{
"type":"Feature",
"id":"asdf",
"geometry":null,
"properties":
{
"PARAM1":"19 16 11",
"PARAM2":"31 22 11",
"PARAM3":"12 10 7",
}
}],
"crs":null
}`
我认为“ features ”是一个JSON数组,“ properties ”是这个数组的一个对象。 我坚持尝试将<推送“元素” PARAM1 “放入我的JS代码中的另一个数组中。 我的尝试是通过jQuery AJAX获取数据。它看起来像这样:
function (){
var arrPARAM1 = new Array ();
$.ajax({
async: false,
url: 'gew.json',
data: "",
accepts:'application/json',
dataType: 'json',
success: function(data) {
arrPARAM1.push(data.features);
}
})
console.log(arrPARAM1);
}
使用 arrPARAM1.push(data.features)我可以“推送”整个数组“ features ”进入我的JS数组。但我只想从对象“ properties ”获得元素“ PARAM1 ”。我怎样才能更深入(功能 - &gt; 属性 - &gt; PARAM1 )?
感谢您的关注!
解决方案:
arrPARAM1.push(data.features[0].properties.PARAM1);
答案 0 :(得分:4)
它只是一个包含单个元素的数组,因此访问[0]
然后.properties
arrPARAM1.push(data.features[0].properties.PARAM1);
答案 1 :(得分:1)
你会找到这样的东西:
data.features[0].properties["PARAM1"]
或
data.features[0].properties.PARAM1
答案 2 :(得分:0)
您将功能定义为数组,因此当您访问时,必须将其视为数组。
arrPARAM1.push(data.features[0].properties.PARAM1); //gets param1 from the features array
答案 3 :(得分:0)
如果您有多个功能:
data.features.forEach(function(feature) {
arrPARAM1.push(feature.properties.PARAM1);
})