2009-08-20 26 views
5

का उपयोग करके सिंगल कोट्स के साथ सबमिशन मैंने चारों ओर देखा है, और मैं इसके लिए एक शानदार समाधान खोजने की कोशिश कर रहा हूं, और मुझे अभी तक कोई नहीं मिला है। मेरे पास .NET में एक एएसएमएक्स वेब सेवा है जिसे मैं कॉल करने की कोशिश कर रहा हूं जिसके लिए पैरामीटर की आवश्यकता है।jQuery, अजाक्स और JSON

मैं jQuery का उपयोग कर रहा ग्राहक के पक्ष सेवा को कॉल करने और मेरे jQuery कोड इस तरह दिखता है:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    url: "/Reviews/HotelReview.asmx/SubmitReview", 
    data: "{'name': '" + name + "', " + 
     "'info': '" info + "'}", 
    processData: true, 
    beforeSend: function() { startSubmit(); }, 
    complete: function() { submitComplete(); }, 
    error: function(xhr) { submitError(xhr); }, 
    success: function(msg) { submitSuccess(msg.d); } 
}); 

यह काम करता है बहुत अच्छी तरह से, को छोड़कर जब या तो नाम या जानकारी शामिल ' चरित्र, एक एकल उद्धरण। काफी सरल, क्योंकि मेरा JSON फ़ील्ड के मान के अंत को परिभाषित करता है और एक एकल उद्धरण है। जब इनमें से किसी भी फ़ील्ड में एक एकल उद्धरण होता है, तो मुझे "आंतरिक सर्वर त्रुटि" मिलती है, लेकिन Fiddler का उपयोग करके आगे निरीक्षण ने मुझे परिणाम दिखाए (मैं उन्हें पोस्ट करने के लिए परेशान नहीं करूंगा) एकल बोली समस्या का संकेत देता हूं।

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

उत्तर

9

विनिर्देशों का कहना है कि JSON में आप केवल कुंजी और मानों के चारों ओर डबल-कोट्स का उपयोग कर सकते हैं, इसलिए इसे डबल कोट्स के साथ आज़माएं। मुझे पूरा यकीन है कि आपकी त्रुटि हल हो जाएगी।

आप है, तो आप http://www.json.org/js.html से उदाहरण के लिए युक्त "मूल्यों, या stringify विधि के साथ समस्याओं में नहीं चला json.js उपयोग करने के लिए सांकेतिक शब्दों में बदलना करने के लिए/वास्तविक मूल्यों में विशेष वर्ण से बचें कर सकते हैं।

+0

महान प्रतिक्रिया के लिए धन्यवाद। मैंने स्ट्रिंग बनाने के बजाय json.js और JSON.encode (myobject) का उपयोग किया। – Odd

+0

ब्राउज़र (जो कि वर्तमान संस्करण संस्करण) का समर्थन करते हैं, आपको शायद मूल JSON ऑब्जेक्ट (http://blogs.msdn.com/ यानी/संग्रह/2008/09/10/देशी-json-in-ie8.aspx) यदि json.js आपके लिए स्वचालित रूप से ऐसा नहीं करता है। – EricLaw

संबंधित मुद्दे