2009-04-26 6 views
8

कि निष्पादित:लापता] तत्व सूची पार्स JSON के बाद

$.post(
"/url/to/method", 
{ }, 
function(data){ 
    var obj2 = eval("("+$(data).children()+")"); 
    // OR var obj = $.evalJSON($($(data).children())); // Jquery-json 
    $body = $("#AAA"); 
    $body.html(obj.fied); 
}, 
"xml" 
); 

जबकि में बारी एक "लापता] तत्व सूची के बाद" (पंक्ति 5 पर या 6) फ़ायरबग में त्रुटि। विधि से JSON आउटपुट को jsonlint.com/

के साथ मान्य किया गया है शायद यह स्पष्ट है लेकिन कृपया मैं AJAX/JSON के आसपास नौसिखिया हूं। धन्यवाद

+4

JSON डेटा को पार्स करने के लिए 'eval' का उपयोग न करें। इसके बजाए 'JSON.parse' का प्रयोग करें। – Gumbo

+1

@ गंबो, सहमत JSON.parse http://www.json.org/js.html – bendewey

+0

पर पाया जा सकता है यदि आप JSON पोस्ट करते हैं, तो यह मदद करना आसान होगा। –

उत्तर

5

JSON.parse विधि का उपयोग करें, या यह eval को पारित करने से पहले अपने कोष्ठक के बगल में एक अंतरिक्ष शामिल करना सुनिश्चित करें ...

eval(" (" + data + ") "); 
+0

रिक्त स्थान के साथ eval का उपयोग अभी भी कोई नहीं है (वही त्रुटि)। JSON.parse का उपयोग करके मैं एक अजीब त्रुटि करता हूं: text.replace एक फ़ंक्शन नहीं है, json2.js: 445 –

+0

कृपया JSON पोस्ट करें। यदि इसमें संवेदनशील जानकारी है, तो डमी डेटा का उपयोग कर त्रुटि दोबारा बनाएं। इसके साथ कुछ गलत है। –

0

आप .NET 2.0 में इस लेखन कर रहे हैं? यदि ऐसा है तो JSON ऑब्जेक्ट को पास करने के बजाय अपने डेटा को क्वेरी स्ट्रिंग में बनाने का प्रयास करें।

उदाहरण: var1 = अल्मा & var2 = उपयोगकर्ता

कहाँ "var1 'और' var2" पैरामीटर है कि आपके webmethod उम्मीद के नाम हैं। पोस्ट का उपयोग करके इसे पास करें .. डेटा: {querystring} 2.0 में JService से JSON पास करते समय मैं समस्याओं में भाग गया।

गुड लक

14

क्या शायद हो रहा है कि आपके $ .post कॉल पहले से ही एक JSON ऑब्जेक्ट लौट रहा है। jQuery स्वचालित रूप से JSON का पता लगाने और आपके लिए इसे पार्स करने का प्रयास करेगा। जब आप किसी JSON ऑब्जेक्ट पर eval को कॉल करते हैं, तो आप यह त्रुटि देखते हैं। ख़ुशामदी! बस डेटा ऑब्जेक्ट का उपयोग करें।

+0

मुझे यह समस्या थी, अब केवल उस ऑब्जेक्ट का उपयोग करके जिसे मैं JSON के सदस्यों तक पहुंचने में सक्षम हूं। धन्यवाद। – Felix

+0

मैं भी इस मुद्दे के साथ अपनी समस्या को ठीक करने में सक्षम था। धन्यवाद। – mVChr

0

यह पता चला है कि jQuery JSON है और यह स्वचालित रूप से पार्स कर रहा है, तो इस स्थिति में डेटा पहले से ही एक जावास्क्रिप्ट ऑब्जेक्ट है और JSON स्ट्रिंग को पार्स करने की प्रतीक्षा नहीं है। तो आप इस ऑब्जेक्ट का उपयोग कर सकते हैं क्योंकि यह eval() और JSON.parse का उपयोग करने के बजाय है।

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

  • कोई संबंधित समस्या नहीं^_^