/ / json परिणाम प्रदर्शन पहला मूल्य - जावास्क्रिप्ट, AJAX, json

जेसन परिणाम पहली मान प्रदर्शित करता है - जावास्क्रिप्ट, AJAX, जेसन

मुझे इस विषय के समान कई पद मिले हैंलेकिन कुछ भी नहीं मैंने कोशिश की है वास्तव में काम किया है। मेरा प्रश्न सरल है और उत्तर देने में आसान होना चाहिए। मेरे रिटर्न जसन ऑब्जेक्ट में एक कुंजी और एक मूल्य होगा। नीचे दिए गए मेरे कोड के लिए, अलर्ट "[{" DISCOUNT ": 1}]" दिखाता है और मैं जो भी करने की कोशिश कर रहा हूं वह "1" है और इसे प्रदर्शित करता है। अंत में, मैं उस मान को एक चर में प्लग करना चाहता हूं और गुणन के लिए उपयोग करना चाहता हूं, लेकिन मैं अपने द्वारा प्रदर्शित करने के लिए रफ़ नंबर प्राप्त नहीं कर सकता। मेरा कोड नीचे है:

function codeMatchTest() {
if ($("#dbReturnString").val() == "") {
alert("Please enter a discount code.");
} else {
$.ajax({
type: "POST",
url: "PROMO.svc/MatchCode",
contentType: "application/json",
dataType: "json",
data: JSON.stringify({ codeInput: $("#dbReturnString").val().toLowerCase() }),
success: function (json) {
alert(json.d);
/*alert (json.d.discount); // getting "undefined"
$.each(json.d, function (key, value) {
var discount = value;
});
alert("Success: " + discount); //getting "undefined" */
},
error: function () {
alert("There was an error with your request.");
}
});
}

}

मुझे इस बात पर कोई अच्छा संदर्भ नहीं मिला है कि वास्तव में डेटा का उपयोग कैसे करें। मेरी json वस्तु में केवल एक ही कुंजी और मूल्य होगा और मुझे केवल कभी-कभी मूल्य का उपयोग करने की आवश्यकता होगी।

इसके अलावा, मैंने $ .each और कोई भी काम नहीं करते हुए कई पुनरावृत्तियों की कोशिश की है। Jquery दस्तावेज़ीकरण के आधार पर, यह बहुत आसान होना चाहिए लेकिन मुझे भाग्य नहीं मिल रहा है।

उत्तर:

उत्तर № 1 के लिए 1

अगर आपका अलर्ट दिख रहा है "[{"DISCOUNT":1}]" इसका मतलब है कि आपके पास एक सरणी के भीतर एक वस्तु है।

प्रयत्न alert(json.d[0].DISCOUNT);


उत्तर № 2 के लिए 1

JSON की पार्स की गई वस्तुएं केस सेंसिटिव होती हैं, इसके अलावा ऐसा लगता है कि json.d में एक ऑब्जेक्ट के बजाय एक स्ट्रिंग (जो json में प्रतीत होता है) शामिल है। प्रयत्न:

var छूट = JSON.parse (json.d); छूट = छूट [०]।


जवाब के लिए 0 № 3
success: function(json) {
alert(json.d[0]["DISCOUNT"]);
}

जवाब के लिए 0 № 4

पहले अपने कोड पर टिप्पणी करें, आप यह बता रहे हैं कि jQuery क्या कर रहा है।

data: JSON.stringify({ codeInput: $("#dbReturnString").val().toLowerCase() }),

यह सिर्फ होना चाहिए

data: { codeInput: $("#dbReturnString").val().toLowerCase() },

अब डेटा प्राप्त करने के लिए यह सरल है, आप इसमें एक ऑब्जेक्ट के साथ एक सरणी लौटा रहे हैं।

हम इसे एक नियमित चर के रूप में देखते हैं न कि अजाक्स कॉल के रूप में।

var json = [{"DISCOUNT":1}];

तो आपको एक सरणी मिली? आपको इसके अंदर की वस्तु कैसे मिलती है? आप इंडेक्स को देखें। चूंकि आपने कहा था कि इसे एक्सेस करने के लिए उपयोग की तुलना में केवल एक इंडेक्स लौटाया जाएगा।

success: function (json) {
alert(json[0].DISCOUNT);

जवाब के लिए 0 № 5

से पहली वस्तु तक पहुँचने के लिए json आप उपयोग कर सकते है

alert(json.d[0].DISCOUNT);

इसलिये json.d एक सरणी है और इसमें एक ऑब्जेक्ट है जो है 0 सूचकांक। इसलिए, json.d[0] सरणी और उपयोग से पहला आइटम / ऑब्जेक्ट का चयन करेगा .DISCOUNT आप ऑब्जेक्ट की संपत्ति तक पहुँच सकते हैं। यह संपत्ति की तरह उपयोग करना भी संभव है

alert(json.d[0]["DISCOUNT"]);

जवाब के लिए 0 № 6

इस तरह से प्रयास करें

आप JSON.parse (json.d) / json.d का उपयोग कर सकते हैं

var data = json.d; for(i=0;i<data.length;i++) {
alert(data[i].fieldname); }