如何格式化Array中的多个JSON对象

时间:2016-11-20 22:36:50

标签: javascript json

我想要一个包含多个人物对象的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);        
}

3 个答案:

答案 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]) }