2013-03-14 166 views
0

我有这个JSON在我的应用程序的AJAX请求返回,迭代通过组

{"info": {"pat_gender": "f", 
      "obtained_pmh": true, 
      "organized": false, 
      "hpi_selected_alleviating": true, 
      "greeted_patients": true, 
      "echoed_patients_words": false, 
      "allowed_pt_to_finish_thoughts": true, 
      "grade": "Excellent" 
     } } 

我想通过项目,但在小组循环排序真假领域,即一个JSON

{"info": { 
      "pat_gender": "f", 

      //from here GROUP1 
      "obtained_pmh": true, 
      "organized": false, 
      "hpi_selected_alleviating": true, 

      //GROUP2 
      "greeted_patients": true, 
      "echoed_patients_words": false, 
      "allowed_pt_to_finish_thoughts": true, 


      "grade": "Excellent" 
     } } 

我想有两个列表(true和false)进行分类第1组的领域,也第2组排序以同样的方式。 我该如何做到最好?

+0

JS对象(以及扩展名为JSON字典)没有内置的“按键顺序”的概念。您需要按照您想要检查的顺序拥有自己的字段列表。但是,在这种情况下,“排序”是什么意思? – cHao 2013-03-14 15:46:27

+1

@cHao在排序中,我的意思是在每个组中创建两组字段,将字段分隔为T和F. – Alexxio 2013-03-14 18:26:10

回答

0

你可以遍历您的属性和推动与true值键名为“组1”的属性,并推动与false值的键的属性命名组2:

obj.group1 = []; 
obj.group2 = []; 
for p in obj { 
    if (obj.hasOwnProperty(p)) { 
     if (obj[p] === true) { 
      obj.group1.push[p]; 
     } else if (obj[p] === false) { 
      obj.group2.push[p]; 
     } 
    } 
} 

然后你可以检索obj.group1所有键通过遍历数组。

+1

这对排序它们非常有效。有没有一种方法可以将两个GROUP1和GROUP2中的字段分组,如上所示,然后在每个组(1和2)中按照您所做的方式分类到GROUP1_T和GROUP1_F以及GROUP2_T和GROUP2_F中?也许我会重命名这些字段,以使GROUP1具有特定的命名约定,并且也对GROUP2执行相同的操作。可能吗? – Alexxio 2013-03-14 18:12:22

+0

@AlexKasina看起来我误解了这个问题。将密钥分成组1或组2的标准是什么? – 2013-03-14 18:13:57

+1

是的。我想分开这两组字段,然后在每个组中,我应用上面的代码。 – Alexxio 2013-03-14 18:22:15