Javascript Jquery在解析时将巨大的数组拆分为许多新的回调

Javascript Jquery在解析时将巨大的数组拆分为许多新的回调,javascript,jquery,asp.net,arrays,json,Javascript,Jquery,Asp.net,Arrays,Json,我偶然发现了一个小问题。 我得到一个JSON响应,其中包括一个包含67615个条目的字节数组。 现在,它增加了一个 `[....,154,156,);jQuery1910039778258679286416_1363006432850(181,104,...] 每约7300个字符 现在,当我使用ajax方法解析它的正常工作方式时,它会给我一个错误,因为回调会使响应无效 SyntaxError:元素列表后缺少] …184,1,26,65140,86211,16194210174,1);jQuer

我偶然发现了一个小问题。 我得到一个JSON响应,其中包括一个包含67615个条目的字节数组。 现在,它增加了一个

`[....,154,156,);jQuery1910039778258679286416_1363006432850(181,104,...]
每约7300个字符

现在,当我使用ajax方法解析它的正常工作方式时,它会给我一个错误,因为回调会使响应无效 SyntaxError:元素列表后缺少]

…184,1,26,65140,86211,16194210174,1);jQuery17203250109862964784_13639643449

所以它不再有效了

我用这个来解析它

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

    }
})
这可能是asp服务器给我对象的问题,还是解析有问题

提前谢谢

编辑1:

   [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;
}
如果您需要更多代码,请告诉我im不进入ASP:(

编辑2:

怎么办:(
以下是JSON答案

根据jQuery文档,您可以设置jsonp回调的名称,以在您的案例中保存字节:
jsonpCallback

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

这听起来像是一个ASP限制因素。这不是特定于jQuery的,而是针对来自ASP服务器的任何JSON响应。我也在ColdFusion服务器上看到过这一点。找到此设置,看看您的限制是否与您达到的限制相关联。看看是否可以将其增加到您需要的程度

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

如果您无权访问服务器设置,也可以在代码中设置该值。以下是MSDN参考:

它还指出:

JSON字符串的最大长度。默认值为2097152个字符,相当于4 MB的Unicode字符串数据

这远远超过了约7300个字符的长度。但可能有人调整了此设置

我还很好奇,您会看到回调方法的“多次”返回。通常,我认为,这个限制只会截断第一个回调结果的结果。
也许你还有别的事情要做?

什么在生成JSON?这是在换行时发生的吗?JSON是由运行在这里的asp.net服务器生成的,如果我调用某个没有bytearray的对象,它工作正常,只是bytearray使它失败,即使数组只是普通数据。JSON由.net自己序列化使用ResponseFormat=ResponseFormat.JsonIt看起来ASP正在将响应分解为多个回调。您可以使用本机javascript发出jsonp请求并接收所有这些回调,但如果您想让jQuery处理它,就必须让它不要将其拆分。我不喜欢JS,否则我会使用它,因为我看不到任何操作使ASP不拆分的选项?您可能必须在此处共享一些ASP代码,以便任何人回答此问题。我怀疑这是否会将67k条目减少到7.3k字符或更少。如果您提供完整的JSON响应,或者至少是结构等效的内容?