Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.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 尝试将json转换为xml,但显示错误_Javascript_Jquery_Asp.net_Xml_Json - Fatal编程技术网

Javascript 尝试将json转换为xml,但显示错误

Javascript 尝试将json转换为xml,但显示错误,javascript,jquery,asp.net,xml,json,Javascript,Jquery,Asp.net,Xml,Json,我正在尝试将json结果转换为xml类型。然而,它似乎不起作用。找不到问题所在。请帮忙 代码是: <script src="../Jquery Autocomplete/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="../Jquery Autocomplete/jquery.json-2.2.min.js" type="text/javascript"></scrip

我正在尝试将json结果转换为xml类型。然而,它似乎不起作用。找不到问题所在。请帮忙

代码是:

<script src="../Jquery Autocomplete/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../Jquery Autocomplete/jquery.json-2.2.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
    $(document).ready(function() 
    {
        $(".openModalLink").click(function()
        {
        var start=$(this).parent().parent().find(".start").val();
        var end =$(this).parent().find(".end").val();
        $.ajax(
              {
                type: "POST",
                url: "frmCollegeExamScheduleMst.aspx/ServerSideMethod",
                data: "{'paraml': '" + start + "','param2': '" + end + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: true,
                cache: false,
                success:function(result)
                {
                    var xmlDoc = $.parseXML(result);
                    var xml = $(xmlDoc);
                    var customers = xml.find("Table");
                    var data = new Array();
                    var i =0;
                    $.each(customers, function () 
                    {
                        //do something
                    });
                },
                error: function(err) {
                     alert('Error:' + err.responseText + '  Status: ' + err.status);
                }
            });
        });
    });

指定dataType:json时,响应将转换为json对象,而不是字符串


尝试删除该参数。

如果AJAX请求的响应是xml,则应相应地进行设置

$.ajax({
  data: {paraml: start, param2: end},
  dataType: "xml",
  success:function(result) {
    var $xml = $(result);
  }
});
不需要contentType,也不需要在数据中进行连接。

请尝试以下操作:

success: function(result) {
    var xmlDoc = $.parseXML(result.d);
    ...
}
[WebMethod]
public static string ServerSideMethod(string param1, string param2)
{
    DataSet ds = ...
    return ds.GetXml();
}
注意结果。我猜您的ASP.NET页面方法如下所示:

success: function(result) {
    var xmlDoc = $.parseXML(result.d);
    ...
}
[WebMethod]
public static string ServerSideMethod(string param1, string param2)
{
    DataSet ds = ...
    return ds.GetXml();
}
此字符串是JSON序列化的。为了在客户端上检索,ASP.NET基础结构添加了d参数:

{"d":"some xml here"}
另一件您绝对应该在代码中更改的事情是替换:

data: "{'paraml': '" + start + "','param2': '" + end + "'}"
与:

以确保您的请求参数是正确的JSON编码。例如,考虑一下如果start='foo''bar'会发生什么。您最终将得到:

data: {param1: 'foo'bar', param2: 'baz'}

您可以看到,这完全破坏了JSON。

为什么要将XML作为JSON发送?它们是两种完全不同的格式。ServerSideMethod page方法返回什么?它的签名是什么。此外,它似乎不工作是一个非常糟糕的问题描述。抱歉的光描述。ServerSideMethod将查询数据库并返回数据集。我在该方法中使用了返回ds.GetXml来转换它。这个返回一个错误。错误如下所示:错误:\u003cNewDataSet\u003e\r\n\u003cTable\u003e\r\n\u003cSTU\u NAME\u003egagan\u003c/STU\u NAME\u003e\r\n\u003cREG\u003e1\u003c/REG\u003e\r\n\u003c/Table\u003e\r\n\u003cTable\u003e\r\n\u003c\u003e\u003e\u003e\r\n\u003cSTU\u003e\u003e\u003e\r\n\n\u003cSTU\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003c/Table\u003e\r\n\u003c/NewDataSet\u003e状态:200 ServerSideMethod的结果通过返回ds转换为字符串格式。GetXml@Prince,这是您的XML。此外,您还没有显示错误发生的位置,尽管当代码输入“success:functionresult{alertresult;}”时会出现错误,“是的,我也尝试了该错误..但是没有任何帮助会给出相同的错误。thnx..是的,现在一切似乎都正常工作。但是在这一步成功时出错:functionresult{$xmlDoc=$.parseXMLresult.d;}显示没有人尝试删除.d。result.d的值是什么?