循环通过JSON数组

时间:2013-10-28 20:29:19

标签: javascript arrays json

我有一个由表单生成的JSON文件,其结构如下:

[{"r1":"9","r2":"","r3":"3","r4":"10","r5":"","msg":"Integer tempor ullamcorper urna, at lacinia lectus sodales et. Pellentesque ac ornare justo. "},
{"r1":"4","r2":"7","r3":"","r4":"8","r5":"7","msg":"Integer tempor ullamcorper urna, at lacinia lectus sodales et. "}]

我需要对(r1到r5)中保存的数字执行统计并显示消息(msg)

我正在使用两个固定循环来重新创建具有这两种不同内容类型的数组

for (i=0; i<data.length; ++i) {
    results.push([
                   +data[i]['r1'],
                   +data[i]['r2'],
                   +data[i]['r3'],
                   +data[i]['r4'],
                   +data[i]['r5']
                ]);
 }


 for (i=0; i<data.length; ++i) {
     messages.push([
                    data[i]['msg']
                  ]);
  }   

我想知道是否有更好的方法循环到数字值,因为这种形式有时会有更多或更少的数字fiels(例如r1到r15,我不喜欢手动改变每次我的代码。

使用date [0] .length dosnt help,我认为可以计算每个{}

中的对象数量

非常感谢你的帮助,我是JSON和Array的新手。

1 个答案:

答案 0 :(得分:1)

在初始循环中使用for in循环:

for (i=0; i<data.length; ++i) {
    for (var key in data[i]) {
        if (data[i].hasOwnProperty(key) && key != "msg")
             results.push(data[i][key]);
    }
}