按索引检索JSON对象的属性

时间:2016-06-17 00:22:11

标签: javascript json

我有一个JSON对象如下:

[
  {
    "Under 10": "0",
    "10-20": "1",
    "20-30": "3",
    "30-40": "2",
    "40-50": "4",
    "50-60": "4",
    "60-70": "1",
    "Above 70": "0"
  }
]

无论如何只能访问此对象的各个属性?我想让每个人都成为一个单独的JSON对象。 我希望它看起来像这样

[
  {
  "Under 10": "0"
  },
  {
  "10-20": "1",
  },
]

我尝试过使用Oject.keys,但这是不可能的。我甚至试过了地图功能。

4 个答案:

答案 0 :(得分:3)

您可以使用Object.getOwnPropertyNames()Object.keys()。前者返回所有自己的属性,而后者更具体,只返回可枚举属性。但是对于JSON而言,它并不重要。



var json = [
  {
    "Under 10": "0",
    "10-20": "1",
    "20-30": "3",
    "30-40": "2",
    "40-50": "4",
    "50-60": "4",
    "60-70": "1",
    "Above 70": "0"
  }
];

var result = Object.getOwnPropertyNames(json[0]).map(name => ({[name]: json[0][name]}));

console.log(result);




答案 1 :(得分:2)

使用地图:

.Zebra_DatePicker()

快速演示:deprecated in jQuery 3.0

答案 2 :(得分:0)

要获得预期的结果,以下选项可能会帮助您

        var x = [
    {
        "Under 10": "0",
        "10-20": "1",
        "20-30": "3",
        "30-40": "2",
        "40-50": "4",
        "50-60": "4",
        "60-70": "1",
        "Above 70": "0"
    }]
    ;

    var keys =Object.keys(x[0]);
    var final=[];

    for(i=0;i< keys.length;i++){
     final[i] = '[{'+keys[i]+':'+x[0][keys[i]]+'}]';

    }


    console.log(final);//final array will have expected result

Codepen- http://codepen.io/nagasai/pen/KMMbMm

答案 3 :(得分:0)

原始JSON是一个数组,我们需要将数组中的第一个Object转换为新数组。如下,

// Original JSON, an Array.
var raw = [ 
  {
    "Under 10": "0",
    "10-20": "1",
    "20-30": "3",
    "30-40": "2",
    "40-50": "4",
    "50-60": "4",
    "60-70": "1",
    "Above 70": "0"
  }
];

// The first Object in original JSON(an Array).
var oldObject = raw[0]; 

// New Array stores the Objects you want.
var newArray = []; 

// Get each item in oldObject
for(var key in oldObject) { 

  // Create a new Object
  var obj = {}; 

  // Assign the value of key of oldObject to obj[key].
  // Like obj["Under 10"] = "0".
  obj[key] = oldObject[key];  

  // Append obj to newArray.
  newArray.push(obj);

}

无论如何, newArray 就是您所需要的。 干杯:)