【问题标题】:How to get specific object-elements from JSON-array into JavaScript-array如何将特定对象元素从 JSON-array 获取到 JavaScript-array
【发布时间】:2016-01-20 20:27:41
【问题描述】:

我有一个外部 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”“push”放入我的 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”“push”到我的 JS 数组中。但我只想从对象“properties”中获得元素“PARAM1”。我怎样才能更深入(features --> properties --> PARAM1)?

感谢您的关注!


解决方案:

arrPARAM1.push(data.features[0].properties.PARAM1);

【问题讨论】:

  • 永远不要将 async 设置为 false ......它甚至已被弃用(并且已经有一段时间了)

标签: javascript jquery arrays json ajax


【解决方案1】:

如果您有多个功能:

data.features.forEach(function(feature) {
    arrPARAM1.push(feature.properties.PARAM1);
})

【讨论】:

    【解决方案2】:

    您将要素定义为一个数组,因此当您访问 is 时,您必须将其视为一个数组。

    arrPARAM1.push(data.features[0].properties.PARAM1); //gets param1 from the features array
    

    【讨论】:

      【解决方案3】:

      你会寻找这样的东西:

      data.features[0].properties["PARAM1"]

      或者

      data.features[0].properties.PARAM1

      【讨论】:

        【解决方案4】:

        这只是一个包含单个元素的数组,因此请访问 [0] 然后 .properties

        arrPARAM1.push(data.features[0].properties.PARAM1);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-16
          • 2016-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-15
          • 2016-11-06
          • 1970-01-01
          相关资源
          最近更新 更多