2012-01-18 18 views
6

Ive ha ottenuto una stringa JSON provenienti oltre e di essere assinged ad un oggetto JavaScriptinterrogazione JavaScript Object

{ 
    "results":[ 
     { 
     "id":"460", 
     "name":"Widget 1", 
     "loc":"Shed" 
     },{ 
     "id":"461", 
     "name":"Widget 2", 
     "loc":"Kitchen" 
     }] 
} 

C'è un modo per "query" questi dati in javascript così ho potuto ricercare un ID di 460 e ottenere nome e posizione restituiti (oltre al semplice loop dell'intero oggetto)? Ho jQuery e Prototypejs disponibili per l'uso.

+0

prega vedi questo link http://stackoverflow.com/questions/4992383/use-jquerys-find-on-json-object – Grrbrr404

+0

possibile duplicato di [Trova oggetto per id in array di java oggetti criptati] (http://stackoverflow.com/questions/7364150/find-object-by-id-in-array-of-javascript-objects) - si prega di utilizzare la ricerca prima di fare una domanda. –

+0

Non c'è modo di "interrogare" quei dati in modo più efficiente a meno che non si forniscano anche indici ordinati e si usi la ricerca binaria o qualcosa del genere. Se questo non è un aspetto critico, ciò non sarà necessario e questo è un duplicato. – Esailija

risposta

16

DEMO array

JavaScript hanno un built-in filter method:

var valuesWith460 = obj.results.filter(function(val) { 
    return val.id === "460"; 
}); 

(per supportare i browser più vecchi si vorrà per afferrare lo spessore dal link qui sopra)

+0

grazie, funziona benissimo. – Darksbane

1
function getInfoByID(id) 
    var object = { ... }; 
    for(var x in object.results) { 
    if(object.results[x].id == id) { 
     return [object.results[x].loc, object.results[x].name]; 
    } 
    } 
} 
Problemi correlati