我想要一个包含多个人物对象的JSON对象。有没有更好的格式化方法?我在下面做的是有一个result
键,它是一个由数组组成的数组(在内部数组中有JSON person对象)。
{
result: [
[
{
"name": "Josh",
"age": 15
}
],
[
{
"name": "Joe",
"age": 16
}
]
]
}
然后在for循环中我做了这样的事情:
var nameArray = result[0];
for (var i = 0; i < numberOfObjectsInJSONObject; i++) {
newNameArray.push(nameArray[i].firstPerson);
}
答案 0 :(得分:4)
让每个人物体都包裹在它自己的阵列中是没有意义的。除非有其他需要完成的分组,否则您需要的是一个包含所有人物对象的数组
result: [
{
"name": "Josh",
"age": 15
},
{
"name": "Joe",
"age": 16
}
]
此数组可按年龄或名称排序,过滤等
答案 1 :(得分:2)
如果你想保留这样的对象,就像这样的工作。请试试这个
var pList = {
people: [{
'name': 'Josh',
'age': 15
}, {
'name': 'Joe',
'age': 16
}],
animal: [{
'type': 'Dog',
'legs': 4
}, {
'type': 'Bird',
'legs': 2
}]
};
[].forEach.call(pList.people, function(p) {
// can push its value into new array or else
console.log(`${p.name} -- ${p.age}`);
})
//or
pList.animal.forEach(function(a) {
console.log(`${a.type} -- ${a.legs}`)
})
答案 2 :(得分:0)
以下是您的对象列表:
var a = [];
a.push({ "name" : "Joe", "age" : 16 });
a.push({ "name" : "John", "age" : 17 });
以下是创建JSON的方法:
JSON.stringify(a);
结果如下:
[{"name":"John","age":17},{"name":"Joe","age":16}]
以下是迭代数组的方法:
for (var i = 0; i < a.length; i++) { console.log(a[i]) }