2012-01-18 20 views
6

Ive consiguió una cadena JSON que viene y se assinged a un objeto JavaScriptconsulta Javascript objeto

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

¿Hay una manera de "consulta" estos datos en javascript por lo que podría buscar un ID de 460 y obtener nombre y loc devuelto (que no sea simplemente recorrer todo el objeto)? Tengo jQuery y Prototypejs disponibles para usar.

+0

favor vea este enlace http://stackoverflow.com/questions/4992383/use-jquerys-find-on-json-object – Grrbrr404

+0

posible duplicado de [Find object by id in array of javas objetos cript] (http://stackoverflow.com/questions/7364150/find-object-by-id-in-array-of-javascript-objects) - utilice la búsqueda antes de hacer una pregunta. –

+0

No hay forma de "consultar" esos datos de manera más eficiente a menos que también proporciones índices ordenados y uses búsquedas binarias o algo así. Si esto no es crítico para el rendimiento, no será necesario y esto es un duplicado. – Esailija

Respuesta

16

DEMO matrices

JavaScript tienen incorporado un filter method:

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

(para soportar los navegadores antiguos que querrá agarrar la cuña desde el enlace anterior)

+0

gracias, eso funciona genial. – 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]; 
    } 
    } 
}