2010-07-18 8 views
2

Je suis nouveau à json. J'ai json sortie qui ressemble à ceciComment extraire la valeur de la sortie json?

[ 
    { 
     "employees": { 
      "education": "BE\/B.Tech" 
     }, 
     "0": { 
      "count": "1" 
     } 
    }, 
    { 
     "employees": { 
      "education": "MBA" 
     }, 
     "0": { 
      "count": "3" 
     } 
    } 
] 

Je veux récupérer l'éducation de l'employé et le compte. J'ai essayé mais je ne suis pas capable de récupérer les valeurs.

J'apprécie toute aide.

Merci.

+0

Pourriez-vous coller le code que vous avez essayé d'utiliser pour récupérer cette sortie JSON? – BoltClock

Répondre

10

En supposant que votre chaîne JSON est il va comme une $json variable ceci:

var employees_list = JSON.parse($json); 

Ensuite, vous pouvez accéder aux informations via:

employees_list[0].employees.education // gives you "BE\/B.Tech" 
// and 
employees_list[0]["0"].count // gives you 1. 

Vous pouvez également en boucle sur le réseau et l'accès tous les différents education de cette façon.

Mise à jour:

Pour mieux démontrer que l'expression des accès qui informations:

[          // employees_list 
    {         // employees_list[0] 
     "employees": {     // employees_list[0].employees 
      "education": "BE\/B.Tech" // employees_list[0].employees.education 
     }, 
     "0": {       // employees_list[0]["0"] 
      "count": "1"    // employees_list[0]["0"].count 
     } 
    }, 
    {         // employees_list[1] 
     "employees": {     // employees_list[1].employees 
      "education": "MBA"   // employees_list[1].employees.education 
     }, 
     "0": {       // employees_list[1]["0"] 
      "count": "3"    // employees_list[1]["0"].count 
     } 
    } 
] 

Généralement employees_list[0].employees est le même que employees_list[0]["employees"] mais cela ne fonctionne pas pour les chiffres, parce que les propriétés et les variables ne sont pas autorisées pour commencer avec des chiffres. Donc, vous pouvez seulement utiliser employees_list[0].["0"]et nonemployees_list[0].0.


La structure de votre chaîne JSON est cependant un peu étrange. Vous devriez envisager de le structurer différemment si vous le pouvez.

Par exemple:

[ 
    { 
     "education": "BE\/B.Tech", 
     "count": "1" 
    }, 
    { 
     "education": "MBA" 
     "count": "3" 
    } 
] 

La clé "0" dans votre chaîne JSON originale semble servir à rien et ne fait que compliquer l'accès.

+0

Je sais que la sortie semble étrange. var employees_list; $ .getJSON ('url', fonction (données) { employees_list = JSON.parse (données); showAlert(); }); function showAlert() { alert (liste_personnes [0] .employees.éducation); } J'ai essayé mais cela ne fonctionne pas. – Nick

+0

@Nick: Si vous utilisez 'getJSON', vous n'avez pas besoin de l'analyser. Il est déjà analysé. 'data [0] .employees.education' devrait fonctionner. –

Questions connexes