2016-11-20 45 views
0

我想拥有一个包含多个人物对象的JSON对象。有没有更好的方式来格式化?我在下面做的是有一个result键,它将是一个由数组组成的数组(其内部具有JSON person对象)。如何格式化数组中的多个JSON对象

{ 
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

不知道为什么你必须有一个项目数组的数组。 'result'可能是一个简单的对象数组(p.s.这些是对象,而不是JSON .JSON可能是你如何检索数据,但这不是你正在使用的JSON) –

+0

它是分离出不同的人物对象。就像我想用for循环遍历它们所有的一样。像结果数组中的每个数组都是一个人对象。 – CapturedTree

+0

你正在包装每个对象在一个只包含该对象的数组中,这似乎是无用的 – maioman

回答

4

在有包裹它自己的阵列中每个人的对象没有点。除非有需要所做的一切,你应该需要一些其他的分组是包含了所有的人一个对象数组

result: [ 

      { 
      "name": "Josh", 
      "age": 15 
      }, 
      { 
      "name": "Joe", 
      "age": 16 
      } 

    ] 

该阵列可以通过年龄或名称进行排序,过滤等

+0

我将如何遍历结果数组然后单独访问每个人物对象? – CapturedTree

+0

循环现在更简单'result.forEach(function(person){console.log(person.name)})' – charlietfl

+0

呵呵哈哈我很笨。数组中的每个位置都是一个对象。我太过分地反思这个了。谢谢! – CapturedTree

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]) } 
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}`) 
 
})