2012-01-18 17 views
6

Ive JSON स्ट्रिंग से अधिक आ रहा है और एक जावास्क्रिप्ट वस्तुक्वेरी जावास्क्रिप्ट वस्तु

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

को assinged किया जा रहा मिला वहाँ एक रास्ता "क्वेरी" जावास्क्रिप्ट में इस डेटा तो मैं 460 के एक आईडी के लिए खोज और मिल सकता है करने के लिए है नाम और स्थान लौटा (पूरे ऑब्जेक्ट के माध्यम से बस लूपिंग के अलावा)? मुझे उपयोग करने के लिए jQuery और प्रोटोटाइप उपलब्ध हैं।

+0

कृपया (आप ऊपर के लिंक से शिम हड़पने के लिए चाहता हूँ पुराने ब्राउज़र का समर्थन करने के) यह लिंक देखें http://stackoverflow.com/questions/4992383/use-jquerys-find-on-json-object – Grrbrr404

+0

संभावित डुप्लिकेट [जावा के सरणी में आईडी द्वारा ऑब्जेक्ट खोजें क्रिप्ट ऑब्जेक्ट्स] (http://stackoverflow.com/questions/7364150/find-object-by-id-in-array-of-javascript-objects) - कृपया एक प्रश्न पूछने से पहले खोज का उपयोग करें। –

+0

उस डेटा को अधिक कुशलतापूर्वक "क्वेरी" करने का कोई तरीका नहीं है जब तक कि आप सॉर्ट किए गए इंडेक्स भी प्रदान न करें और बाइनरी खोज या कुछ का उपयोग न करें। यदि यह प्रदर्शन महत्वपूर्ण नहीं है, तो इसकी आवश्यकता नहीं होगी और यह एक डुप्लिकेट है। – Esailija

उत्तर

16

DEMO

जावास्क्रिप्ट सरणियों है एक अंतर्निहित filter method:

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

+0

धन्यवाद, यह बहुत अच्छा काम करता है। – 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]; 
    } 
    } 
} 
संबंधित मुद्दे