JSON - 查找元素

时间:2014-08-26 13:06:15

标签: jquery json

我的JSON看起来像这样 -

[{
    "Columnd58eae9aee6a43b9836e59254e914f43": 1,
    "Metric": "7e70661f-e266-4745-9b1b-c5c5691e9746",
    "MetricDisplay": "Active Users",
    "Pivot1": 40.00000,
    "Pivot2": 38.00000,
    "Pivot3": 18.00000,
    "Total": 96.00000,
    "Average": 32.00000,
    "IsTotal": 0,
    "MetricOrder": 1
}]

但是在这个例子中我有3个“Pivot”列,可能而且很可能会更多。如何使用jQuery确定我拥有的Pivot列的数量和这些元素的值?

4 个答案:

答案 0 :(得分:0)

Pivot的结构更改为数组:

var obj = [{
    "Columnd58eae9aee6a43b9836e59254e914f43": 1,
    "Metric": "7e70661f-e266-4745-9b1b-c5c5691e9746",
    "MetricDisplay": "Active Users",
    "Pivots": [40.00000, 38.00000, 18.00000],
    "Total": 96.00000,
    "Average": 32.00000,
    "IsTotal": 0,
    "MetricOrder": 1
}]

这样,您可以使用以下任一方法找到Pivots元素的长度:

obj["Pivots"].length
obj.Pivots.length

答案 1 :(得分:0)

理想情况下,您使用数组:

Pivot: [ 40.00, 38.00, 18.00, ... ],

但你可以使用括号表示法解决这个问题,如下所示:

var i = 1;
while (data['Pivot' + i]) {
    console.log(data['Pivot' + i]);
    i++;
}

答案 2 :(得分:0)

如果Pivot键保持相同的方式,那么您可以尝试使用此代码来查找获取Pivot值

var jsonData = [{
        "Columnd58eae9aee6a43b9836e59254e914f43": 1,
        "Metric": "7e70661f-e266-4745-9b1b-c5c5691e9746",
        "MetricDisplay": "Active Users",
        "Pivot1": 40.00000,
        "Pivot2": 38.00000,
        "Pivot3": 18.00000,
        "Total": 96.00000,
        "Average": 32.00000,
        "IsTotal": 0,
        "MetricOrder": 1
    }];
    var arr = $.map(jsonData[0], function(value, index){ 
        if(/^(\Pivot)[0-9]+$/.test(index)){
            return value;
        }

      });
    console.log(arr);

    //[40, 38, 18]

答案 3 :(得分:0)

您提供的JSON格式不是有效格式。

我做了一些修改。

 {
  "item": {
    "Columnd58eae9aee6a43b9836e59254e914f43": "1",
    "Metric": "7e70661f-e266-4745-9b1b-c5c5691e9746",
    "MetricDisplay": "Active Users",
    "pivot": {
      "Pivot1": "40",
      "Pivot2": "38",
      "Pivot3": "18"
    },
    "Total": "96",
    "Average": "32",
    "IsTotal": "0",
    "MetricOrder": "1"
  }
};

Object.keys(x.item.pivot)。长度

这将给出所需的长度!!