2013-03-11 2 views
10

मैं एक छोटी सी समस्या पर ठोकर खाई को पार्स। मैं एक JSON उत्तर जो 67,615 प्रविष्टियों के साथ एक बाइट सरणी शामिल वापस मिलता है। अब अच्छी तरह से यह कहते हैं एकJquery कई नए कॉलबैक में विशाल सरणी विभाजन जबकि

`[....,154,156,);jQuery1910039778258679286416_1363006432850(181,104,...] 

हर ~ 7300 वर्ण

अब जब मैं ajax विधि का उपयोग यह पार्स करने के लिए कि यह कैसे normaly यह मुझे एक त्रुटि देता है क्योंकि कॉलबैक प्रतिक्रिया अमान्य सिंटैक्स त्रुटि काम करता है: लापता ] तत्व सूची

..., 184,1,26,65,140,86,211,16,194,210,174,1) के बाद; jQuery17203250109862964784_13639643449 ...

इसलिए इसकी मान्य नहीं अब और

मैं इस का उपयोग पार्स करने के लिए यह

$.ajax({ 
    url : url, 
    cache : false, 
    dataType : "jsonp", 
    crossDomain : true, 
    success : function(root) { 
     console.log(root) 

    } 
}) 

यह मेरे वस्तु या वहाँ कुछ पार्स साथ कुछ गड़बड़ है दे एएसपी सर्वर की समस्या हो सकता है?

अग्रिम धन्यवाद

EDIT1:

[WebMethod(Description = " ", EnableSession = true)] 
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 

public Borrower getSessionedBorrowerHeader(ref sysmessage aMessage) 
{ 
    if (!(userValidated(ref aMessage))) 
     return null; 
    BorrowerControl borrowerControl = new BorrowerControl(LOCALconnectionStringDb, 
                  WEBconnectionStringDb, 
                  STATSconnectionStringDb, 
                  LIBconnectionStringDb, 
                  CATconnectionStringDb, 
                  LIBconnectionStringDb, 
                  Session); 
    Borrower returnObj = borrowerControl.getSessionedBorrowerHeader(ref aMessage); 
    borrowerControl.Dispose(); 
    return returnObj; 
} 

अगर आप अधिक की जरूरत कोड मुझे बताओ एएसपी :(

EDIT2 में im:

http://pastebin.com/e3X2VKxY

क्या करने के लिए करें :( यहां JSON ans है wer

+0

जेएसओएन क्या उत्पन्न कर रहा है? क्या यह लाइन ब्रेक पर हो रहा है? – Blazemonger

+0

जेसन को एएसपीनेट सर्वर द्वारा यहां जेनरेट किया जाता है यदि मैं कुछ वस्तु को बाइटियर के बिना कॉल करता हूं तो यह ठीक काम करता है, केवल बाइटियर्रे इसे असफल बनाता है, भले ही सरणी केवल सादा डेटा है। JSON को ResponseFormat = ResponseFormat.Json –

+1

का उपयोग कर .NET द्वारा क्रमबद्ध किया जाता है ऐसा लगता है कि एएसपी एकाधिक कॉलबैक में प्रतिक्रिया तोड़ रहा है। आप jsonp अनुरोध करने और उन सभी कॉलबैक प्राप्त करने के लिए मूल जावास्क्रिप्ट का उपयोग कर सकते हैं, लेकिन यदि आप jQuery को इसे संभालने के लिए चाहते हैं, तो आपको इसे विभाजित नहीं करना होगा। –

उत्तर

0

jQuery प्रलेखन के अनुसार, आप jsonp कॉलबैक का नाम है, आपके मामले में बाइट्स को बचाने के लिए सेट कर सकते हैं: jsonpCallback

function J() { ... } 
$.ajax({ 
    url : url, 
    cache : false, 
    dataType : "jsonp", 
    jsonpCallback : "J", 
    crossDomain : true, 
    success : function(root) { 
     console.log(root) 
    } 
}) 
+0

मुझे संदेह है कि यह 67k प्रविष्टियों को 7.3k वर्णों या उससे कम –

+0

तक कम करेगा, क्या आप पूर्ण JSON प्रतिक्रिया प्रदान कर सकते हैं, या कम से कम कुछ संरचनात्मक रूप से समकक्ष है? –

+0

@ टीडब्ल्यूआरआरकोल किया गया –

1

यह एक एएसपी सीमित कारक की तरह लगता है। यह jQuery विशिष्ट नहीं है, लेकिन एएसपी सर्वर से किसी भी JSON प्रतिक्रिया के लिए। मैंने इसे कोल्डफ्यूजन सर्वर पर भी देखा है। इस सेटिंग को ढूंढें और देखें कि आपने जिस सीमा को अपनी सीमा से सहसंबंधित किया है, उस पर आप हिट करते हैं। देखें कि क्या आप इसे अपनी जरूरत के अनुसार बढ़ा सकते हैं।

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="x"></jsonSerialization> 
     </webServices> 
    </scripting> 
</system.web.extensions> 

आप सर्वर सेटिंग्स के लिए पहुँच नहीं है, तो आप भी अपने कोड में मूल्य निर्धारित करने में सक्षम हो सकता है।

http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.maxjsonlength.aspx

यह भी वहाँ राज्यों::

The maximum length of JSON strings. The default is 2097152 characters, which is equivalent to 4 MB of Unicode string data.

यह ~ 7300 पात्रों में से अपनी लंबाई से अधिक तरीका है यहाँ कि के लिए एक MSDN संदर्भ है। लेकिन शायद किसी ने इस सेटिंग को समायोजित किया है।

मैं भी उत्सुक आप देखते हैं कि 'कई' कॉल बैक विधि रिटर्न हूँ। आम तौर पर, मुझे लगता है कि, यह सीमा केवल पहले कॉलबैक परिणाम के परिणाम को कम कर देगी। शायद आपके पास कुछ और चल रहा है?

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