我有一个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,但这是不可能的。我甚至试过了地图功能。
答案 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)
答案 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 就是您所需要的。 干杯:)