Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于ASP.NET.ascx控件的jQuery Ajax_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript 用于ASP.NET.ascx控件的jQuery Ajax

Javascript 用于ASP.NET.ascx控件的jQuery Ajax,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我正在使用jQuery对代码隐藏中的.ascx控件的方法进行AJAX调用,以获取业务对象列表: C代码: jQuery代码: http调用执行得很好,集合被序列化并与响应一起返回,但是这里有一些问题。最主要的一点是HTML没有被创建——我无法捕获返回的字符串。调用完成后,下面的字符串将显示在Firebug脚本窗口中 [{BusinessID:6549,BusinessName:Ivory Store,IsMain:true},{BusinessID:16565,BusinessName:Clas

我正在使用jQuery对代码隐藏中的.ascx控件的方法进行AJAX调用,以获取业务对象列表:

C代码:

jQuery代码:

http调用执行得很好,集合被序列化并与响应一起返回,但是这里有一些问题。最主要的一点是HTML没有被创建——我无法捕获返回的字符串。调用完成后,下面的字符串将显示在Firebug脚本窗口中

[{BusinessID:6549,BusinessName:Ivory Store,IsMain:true},{BusinessID:16565,BusinessName:Classic钉子,IsMain},{BusinessID:5877,BusinessName:Visible Changes Hair,IsMain:true}]

在Firebug中,我还注意到XMLHttpRequest响应对象中的字符串和错误消息JSON无效。有什么建议吗?非常感谢。

这是无效的

 [{"BusinessID":6549,"BusinessName":"Ivory Store","IsMain":true}, {"BusinessID":16565,"BusinessName":"Classic Nails","IsMain"},{"BusinessID":5877,"BusinessName":"Visible Changes Hair","IsMain":true}]
看到中间缺失的部分了吗?IsMain可能需要

 [{"BusinessID":6549,"BusinessName":"Ivory Store","IsMain":true}, {"BusinessID":16565,"BusinessName":"Classic Nails","IsMain":true},{"BusinessID":5877,"BusinessName":"Visible Changes Hair","IsMain":true}]


查看此页面:单击JSLint按钮:

出于某种原因,下面的C解析器代码后面的代码没有附加]到字符串的末尾,因此我必须手动附加它-它工作了!!!多谢各位

   public static string Serialize<T>(T obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream ms = new MemoryStream();
        serializer.WriteObject(ms, obj);
        string retVal = Encoding.UTF8.GetString(ms.ToArray());
        return retVal + "]";
    }

如果您遇到无效JSON的问题并且找不到问题,我建议您使用类似的验证器。糟糕,IsMain上缺少的部分没问题,我在截断实际JSON时丢失了真正的部分-大约30个字段。明天我将发布整个对象的JSON。谢谢。由于某种原因,下面的C解析器代码后面的代码没有在字符串末尾追加]所以我不得不手动追加它-它起作用了!!!非常感谢。公共静态字符串序列化对象{DataContractJsonSerializer serializer=new DataContractJsonSerializerobj.GetType;MemoryStream ms=new MemoryStream;serializer.WriteObjectms,obj;string retVal=Encoding.UTF8.GetStringms.ToArray;返回retVal+];}是,我看到了你的c代码,这肯定不是我的做法,给出一个类并让框架处理该类的序列化似乎是解决这个问题的方法。尝试“刷新”MemoryStream。如果它实际上没有添加尾随的']',这将是框架中的一个重大错误,其他几个将有类似的问题。
 [{"BusinessID":6549,"BusinessName":"Ivory Store","IsMain":true}, {"BusinessID":16565,"BusinessName":"Classic Nails","IsMain":true},{"BusinessID":5877,"BusinessName":"Visible Changes Hair","IsMain":true}]
 [{"BusinessID":6549,"BusinessName":"Ivory Store","IsMain":true}, {"BusinessID":16565,"BusinessName":"Classic Nails","IsMain":false},{"BusinessID":5877,"BusinessName":"Visible Changes Hair","IsMain":true}]
   public static string Serialize<T>(T obj)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
        MemoryStream ms = new MemoryStream();
        serializer.WriteObject(ms, obj);
        string retVal = Encoding.UTF8.GetString(ms.ToArray());
        return retVal + "]";
    }