2010-06-28 4 views
0

Je cherche requête les données JSON basées sur certaines où les conditions pour ex. liste les noms des personnes dont la cellule no est 777-777-7777.Builtin Query Capacités dans JSON en utilisant Javascript ou JQuery

pl faites-moi savoir quelles sont les fonctionnalités de requête dans JSON.

var json = [{ "name": "senthil", 
    "Phoneno": [{ "Home": "111-111-1111" }, 
         { "Cell": "222-222-2222" }, 
         { "Office": "333-333-3333" } 
         ], 
    "City": "Hartford" 
    }, 
    { "name": "kumar", 
     "Phoneno": [{ "Home": "444-555-6666" }, 
         { "Cell": "777-777-7777" }, 
         { "Office": "888-888-8888" } 
         ], 
     "City": "Austin" 
    }, 
    ]; 

Répondre

1
var people = json.filter(function(el) 
      { 
       return el.Phoneno.some(function(number) 
         { 
         return number.Cell == "777-777-7777"; 
         }); 
      }); 

Celui-ci utilise les fonctions de Array.filter et Array.some ECMAScript 5. filter retourne un tableau des éléments qui passent un test. some renvoie true si un élément d'un tableau réussit le test.

Pour les navigateurs qui ne le prennent pas en charge, vous pouvez utiliser le code sur MDC.

Cela ne sera certainement pas plus rapide que l'approche évidente pour la boucle.

Comme une note, si chaque personne peut avoir jusqu'à un numéro de téléphone par type, une représentation plus simple serait:

"Phoneno": { "Home": "111-111-1111", 
      "Cell": "222-222-2222", 
      "Office": "333-333-3333" 
      } 

En outre, JSON fait référence technique à la représentation du texte, pas des objets JavaScript réels.

Questions connexes