सवाल JSON कुंजी और मान कैसे प्राप्त करें?


मैंने webservice से जेएसओएन परिणाम प्राप्त करने के लिए निम्नलिखित कोड लिखा है।

function SaveUploadedDataInDB(fileName) {
            $.ajax({
                type: "POST",
                url: "SaveData.asmx/SaveFileData",
                data: "{'FileName':'" + fileName + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var result = jQuery.parseJSON(response.d);
                    //I would like to print KEY and VALUE here.. for example
                    console.log(key+ ':' + value)
                    //Addess : D-14 and so on..
                   }
            });
        }

Webservice से प्रतिक्रिया यहां दी गई है: enter image description here

कृपया कुंजी और उसके मूल्य को प्रिंट करने में मेरी सहायता करें


44
2017-08-16 05:09


मूल




जवाब:


ऐसा लगता है कि आप एक सरणी वापस प्राप्त कर रहे हैं। यदि यह हमेशा एक तत्व को शामिल करने जा रहा है, तो आप यह कर सकते हैं (हाँ, यह टोमालक के उत्तर जैसा ही है):

$.each(result[0], function(key, value){
    console.log(key, value);
});

यदि आपके पास एक से अधिक तत्व हो सकते हैं और आप उन सभी को फिर से शुरू करना चाहते हैं, तो आप घोंसला कर सकते हैं $.each():

$.each(result, function(key, value){
    $.each(value, function(key, value){
        console.log(key, value);
    });
});

89
2017-08-16 05:33



एफडब्ल्यूआईडब्ल्यू, आप अपने पहले स्निपेट के अंत में एक समापन कोष्ठक खो रहे हैं। - BWDesign


$.each(result, function(key, value) {
  console.log(key+ ':' + value);
});

11
2017-08-16 05:10



लेकिन यह केवल प्रदर्शित होगा 0: [ऑब्जेक्ट ऑब्जेक्ट] - imdadhusen
@imdadhusen ब्राउज़र जेएस डेवलपर टूल / डीबगर को देखकर थोड़ी देर में एक अच्छा विचार हो सकता है। ;) - Tomalak


सबसे पहले, मुझे लगता है कि आप एक स्पष्ट उपयोग कर रहे हैं $.parseJSON()। यदि ऐसा इसलिए है क्योंकि आप सर्वर-साइड पर जेएसओएन मैन्युअल रूप से क्रमबद्ध कर रहे हैं, तो नहीं। एएसपी.नेट स्वचालित रूप से जेएसओएन-आपके विधि के रिटर्न वैल्यू को क्रमबद्ध करेगा और jQuery स्वचालित रूप से आपके लिए भी deserialize होगा।

उस सरणी में पहले आइटम के माध्यम से पुन: प्रयास करने के लिए, आप इस तरह के कोड का उपयोग करें:

var firstItem = response.d[0];

for(key in firstItem) {
  console.log(key + ':' + firstItem[key]);
}

यदि एक से अधिक आइटम हैं (उस स्क्रीनशॉट से बताना मुश्किल है), तो आप लूप कर सकते हैं response.d और फिर उस बाहरी लूप के अंदर इस कोड का उपयोग करें।


10
2017-08-16 05:33