如何将JSON数组中的特定对象元素转换为JavaScript数组

时间:2015-10-21 17:57:18

标签: javascript jquery arrays json ajax

我有一个外部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);

4 个答案:

答案 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);
})