मैं एक एएसपी.नेट एमवीसी सेवा से JSON डेटा पुनर्प्राप्त करने के लिए jQuery.ajax (...) का उपयोग कर रहा हूं। सर्वर एक अपवाद का सामना करना पड़ता है, मैं ग्राहक को वापस एक 400 गलत अनुरोध स्थिति भेजने के लिए और एक JsonResult के रूप में मेरे अपवाद भेजें:jQuery JSON deserialize कैसे करता है?
Response.StatusCode = 400;
return Json(new { ex.Message, ex.StackTrace });
और यहाँ मेरी jQuery कोड है:
$.ajax(
{
type: "POST",
url: deleteUrl,
dataType: "json",
data:
{
dataItems: dataItems,
toJSON: true
},
success: function(msg)
{
alert(msg[i].dataItem);
},
error: function(request, status, error)
{
alert(request.responseText);
}
});
मेरे ASP.NET कोड मुझे मेरे जावास्क्रिप्ट कोड के त्रुटि खंड में भेजता है, और त्रुटि ब्लॉक केवल मुझे सर्वर से लौटाई गई वस्तुओं के साथ अनुरोध करने के बजाय request.responseText को पढ़ने की अनुमति देता है।
अब, अभी तक एक और जावास्क्रिप्ट में जोड़ने के बजाय json_parse जैसे कुछ शामिल हैं और बस मेरी अपवाद को deserialize, मैं बस जेएसओएन पार्सर का उपयोग करना चाहता हूं जो jQuery का उपयोग करता है, हालांकि मुझे आसानी से जानकारी नहीं मिल रही है ।
क्या कोई मुझे सही दिशा में इंगित कर सकता है?
मैं रिक Strahl के ब्लॉग पर एक पोस्ट (http://www.west-wind.com/weblog/posts/324917.aspx) है कि बताते हैं पाया: "ध्यान दें कि AJAXJSON फ़ंक्शन को JSON एन्कोडिंग की आवश्यकता है। JQuery में कोई मूल JSON एन्कोडिंग कार्यक्षमता नहीं है (जो एक बड़ा चूक लगता है, लेकिन शायद छोटे पदचिह्न को संरक्षित करने के लिए किया गया था)। हालांकि कई JSON कार्यान्वयन उपलब्ध हैं। ऊपर मैं जेएसओएन में पैरामीटर ऑब्जेक्ट मैप को क्रमबद्ध करने के लिए डगलस क्रॉकफ़ोर्ड से JSON2.js फ़ाइल का उपयोग कर रहा हूं। " मैंने सोचा कि मैंने इसे jQuery 1.4 में बदल दिया है ... –
क्या बदल गया था, jQuery अब उपलब्ध होने पर 'eval' के बजाय 'JSON.parse' का उपयोग करेगा। जेएसओएन * सीरियलाइजेशन * के लिए ओओटीबी समर्थन प्रदान नहीं किया गया jQuery (और अभी भी प्रदान नहीं करता है)। –
@ क्रिसेंट, जिसे एक उत्तर के रूप में दिया जाना चाहिए, टिप्पणी नहीं। – Cheeso