如何将Xml字符串转换为json对象 [英] How to convert Xml string to json object

查看:70
本文介绍了如何将Xml字符串转换为json对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

朋友您好我在xml转换中遇到了一些问题

请帮帮我



i我用jquery来访问web方法我的脚本如下

 $( document )。ready( function (){
$(' #dlcustomers')。 ( function (){
var obj = {};
obj.cusID = $ .trim($( [id * = dlcustomers])。val());
alert(obj.cusID);
$ .ajax({
type: POST
url: DataWebService.asmx / GetCustomersfn
数据: JSON .stri ngify(obj),
contentType: application / json; charset = utf-8
dataType: json
成功: function (数据){
// alert(成功);
// alert(JSON.stringify (数据));
// alert(data.customers);
$(' #dataTable')。html( JSON .stringify(data));
},
错误: function (错误){
alert ( 错误);
}
});
});
});




我的网络方法如下:



 [WebMethod] 
// [ScriptMethod(UseHttpGet = true,ResponseFormat = ResponseFormat.Xml)]
public string GetCustomersfn( string cusID)
{
string query = SELECT * FROM Customers WHERE CustomerID LIKE @客户ID;
string tablename = Customers;
SqlCommand cmd = new SqlCommand(query);
cmd.Parameters.AddWithValue( CustomerID + cusID.Substring( 0 1 )+ );
DataSet data = GetData(cmd,tablename);
// 返回GetData(cmd,tablename).GetXml();
System.IO.StringWriter writer = new System.IO.StringWriter();
data.Tables [ 0 ]。WriteXml(writer,XmlWriteMode.WriteSchema, false );
return writer.ToString();

}





i以xml格式输出网络服务,如下所示

< newdataset> < xs:schema id =NewDataSetxmlns =xmlns:xs =http://www.w3.org/2001/XMLSchemaxmlns:msdata =urn:schemas-microsoft-com:xml-msdata > < xs:element name =NewDataSetmsdata:isdataset =truemsdata:maindatatable =Customersmsdata:usecurrentlocale =true> < XS:的complexType> < xs:choice minoccurs =0maxoccurs =unbounded> < xs:element name =Customers> < XS:的complexType> < XS:序列> < xs:element name =CustomerIDtype =xs:stringminoccurs =0/> < xs:element name =CompanyNametype =xs:stringminoccurs =0/> < xs:element name =ContactNametype =xs:stringminoccurs =0/> < xs:element name =ContactTitletype =xs:stringminoccurs =0/> < xs:element name =Addresstype =xs:stringminoccurs =0/> < xs:element name =Citytype =xs:stringminoccurs =0/> < xs:element name =Regiontype =xs:stringminoccurs =0/> < xs:element name =PostalCodetype =xs:stringminoccurs =0/> < xs:element name =Countrytype =xs:stringminoccurs =0/> < xs:element name =Phonetype =xs:stringminoccurs =0/> < xs:element name =Faxtype =xs:stringminoccurs =0/> < / XS:序列> < / XS:的complexType> < / XS:组件> < / XS:选择> < / XS:的complexType> < / XS:组件> < / XS:模式> 
< / newdataset>



< customers> <客户id> OLDWO< /客户id> < companyname> Old World Delicatessen< / companyname> < contactname> Rene Phillips< / contactname> < contacttitle>销售代表< / contacttitle> < address> 2743 Bering St.< / address> <城市>安克雷奇< /城市> <区域> AK< /地区和GT; <邮编> 99508< /邮编> <国家>美国< /国家> < phone>(907)555-7584< / phone> < fax>(907)555-2880< / fax> < /客户> <客户> <客户id> WANDK< /客户id> < companyname> Die Wandernde Kuh< / companyname> < contactname>RitaMüller< / contactname> < contacttitle>销售代表< / contacttitle> < address> Adenauerallee 900< / address> <城市>斯图加特< /城市> <邮编> 70563< /邮编> <国家>德国< /国家> <电话> 0711-020361< /电话> <传真> 0711-035428< /传真> < /客户> <客户> <客户id>瓦尔特< /客户id> < companyname> Wartian Herkku< / companyname> < contactname> Pirkko Koskitalo< / contactname> < contacttitle>会计经理< / contacttitle> < address> Torikatu 38< / address> <城市>奥卢< /城市> <邮编> 90110< /邮编> <国家>芬兰< /国家> <电话> 981-443655< /电话> <传真> 981-443655< /传真> < /客户> <客户> <客户id> WELLI< /客户id> < companyname> Wellington Importadora< / companyname> < contactname> Paula Parente< / contactname> < contacttitle>销售经理< / contacttitle> < address> Rua do Mercado,12< / address> <城市>勒森德< /城市> <区域> SP< /地区和GT; <邮编> 08737-363< /邮编> <国家>巴西< /国家> < phone>(14)555-8122< / phone> < /客户> <客户> <客户id> WHITC< /客户id> < companyname> White Clover Markets< / companyname> < contactname> Karl Jablonski< / contactname> <联系人头衔>拥有者LT; /联系人头衔> < address> 305  -  14th Ave. S. Suite 3B< / address> <城市>西雅图< /城市> <区域> WA< /地区和GT; <邮编> 98128< /邮编> <国家>美国< /国家> < phone>(206)555-4112< / phone> < fax>(206)555-4115< / fax> < /客户> <客户> <客户id> WILMK< /客户id> < companyname> Wilman Kala< / companyname> < contactname> Matti Karttunen< / contactname> < contacttitle>所有者/营销助理< / contacttitle> < address> Keskuskatu 45< / address> <城市>赫尔辛基< /城市> <邮编> 21240< /邮编> <国家>芬兰< /国家> < phone> 90-224 8858< / phone> < fax> 90-224 8858< / fax> < /客户> <客户> <客户id> WOLZA< /客户id> < companyname> Wolski Zajazd< / companyname> < contactname> Zbyszek Piestrzeniewicz< / contactname> <联系人头衔>拥有者LT; /联系人头衔> <地址> UL。 Filtrowa 68< / address> <城市>华沙< /城市> <邮编> 01-012< /邮编> <国家>波兰< /国家> < phone>(26)642-7012< / phone> < fax>(26)642-7012< / fax> < /客户> 



但在ajax调用中,当我对json对象进行字符串化时,我得到如下内容

 {d :\\\\\\\\\\\\\\\\\\\\\\\\\\ n \\ n \\\\\\\\\\\\\\\\\\\\\\ \\ n \\\\\\\\\\\\\\\\\\\\\\\\\旧世界熟食店\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ b 2743 Bering St. 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\ r \\ n(907)555-2880 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ n销售代表\ n $
Adenauerallee 900
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\ W W W W H P P P P P P P P P P P P P P P $ b \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \ n \\\ WELLI \\\ Wellington Importadora \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ b $ b \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\白色的三叶草市场,卡尔·贾布隆斯基(Karl Jablonski)的所有者以及他们的收入305美元 - b $ 305第14大道S. Suite 3B
\\\ Seattle \\\\\\\\\\\\\\\\\\\\\\\\\\\\(206)555-4112 \ r'h(206)555-4115 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ n所有者/营销助理\\ n
Keskuskatu 45
\\\\ n赫尔辛基'\\ n 224 8858在他们的网站上找到他的评论并打电话给Wolsza Zajazd,找到他们位于的Zbyszek Piestrzeniewicz \ n Owner \\ n
ul。菲尔特罗瓦68
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 642-7012 \\\\\\



如何正确访问xml数据... help ..

解决方案

document )。ready( function (){


' #dlcustomers')。change( function (){
var obj = {};
obj.cusID =

.trim(

Hello friends i have some problem in xml to json convert
please help me

i am using jquery to access the web method my script is as follows

$(document).ready(function () {
    $('#dlcustomers').change(function () {
        var obj = {};
        obj.cusID = $.trim($("[id*=dlcustomers]").val());
        alert(obj.cusID);
        $.ajax({
            type: "POST",
            url: "DataWebService.asmx/GetCustomersfn",
            data: JSON.stringify(obj),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                 // alert("sucesss");
                //alert(JSON.stringify(data));
                // alert(data.customers);
                $('#dataTable').html(JSON.stringify(data));
            },
            error: function (error) {
                alert("error");
            }
        });
    });
});



my web method is given below

[WebMethod]
  // [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Xml)]
   public string GetCustomersfn(string cusID)
   {
       string query = "SELECT * FROM Customers WHERE CustomerID LIKE @CustomerID";
       string tablename = "Customers";
       SqlCommand cmd = new SqlCommand(query);
       cmd.Parameters.AddWithValue("CustomerID", "%" + cusID.Substring(0, 1) + "%");
       DataSet data = GetData(cmd, tablename);
      // return GetData(cmd, tablename).GetXml();
       System.IO.StringWriter writer = new System.IO.StringWriter();
       data.Tables[0].WriteXml(writer, XmlWriteMode.WriteSchema, false);
       return writer.ToString();

   }



i am getting output of the webservice in xml format as follows

<newdataset> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:isdataset="true" msdata:maindatatable="Customers" msdata:usecurrentlocale="true"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element name="Customers"> <xs:complextype> <xs:sequence> <xs:element name="CustomerID" type="xs:string" minoccurs="0" /> <xs:element name="CompanyName" type="xs:string" minoccurs="0" /> <xs:element name="ContactName" type="xs:string" minoccurs="0" /> <xs:element name="ContactTitle" type="xs:string" minoccurs="0" /> <xs:element name="Address" type="xs:string" minoccurs="0" /> <xs:element name="City" type="xs:string" minoccurs="0" /> <xs:element name="Region" type="xs:string" minoccurs="0" /> <xs:element name="PostalCode" type="xs:string" minoccurs="0" /> <xs:element name="Country" type="xs:string" minoccurs="0" /> <xs:element name="Phone" type="xs:string" minoccurs="0" /> <xs:element name="Fax" type="xs:string" minoccurs="0" /> </xs:sequence> </xs:complextype> </xs:element> </xs:choice> </xs:complextype> </xs:element> </xs:schema> 
</newdataset>


<customers> <customerid>OLDWO</customerid> <companyname>Old World Delicatessen</companyname> <contactname>Rene Phillips</contactname> <contacttitle>Sales Representative</contacttitle> <address>2743 Bering St.</address> <city>Anchorage</city> <region>AK</region> <postalcode>99508</postalcode> <country>USA</country> <phone>(907) 555-7584</phone> <fax>(907) 555-2880</fax> </customers> <customers> <customerid>WANDK</customerid> <companyname>Die Wandernde Kuh</companyname> <contactname>Rita Müller</contactname> <contacttitle>Sales Representative</contacttitle> <address>Adenauerallee 900</address> <city>Stuttgart</city> <postalcode>70563</postalcode> <country>Germany</country> <phone>0711-020361</phone> <fax>0711-035428</fax> </customers> <customers> <customerid>WARTH</customerid> <companyname>Wartian Herkku</companyname> <contactname>Pirkko Koskitalo</contactname> <contacttitle>Accounting Manager</contacttitle> <address>Torikatu 38</address> <city>Oulu</city> <postalcode>90110</postalcode> <country>Finland</country> <phone>981-443655</phone> <fax>981-443655</fax> </customers> <customers> <customerid>WELLI</customerid> <companyname>Wellington Importadora</companyname> <contactname>Paula Parente</contactname> <contacttitle>Sales Manager</contacttitle> <address>Rua do Mercado, 12</address> <city>Resende</city> <region>SP</region> <postalcode>08737-363</postalcode> <country>Brazil</country> <phone>(14) 555-8122</phone> </customers> <customers> <customerid>WHITC</customerid> <companyname>White Clover Markets</companyname> <contactname>Karl Jablonski</contactname> <contacttitle>Owner</contacttitle> <address>305 - 14th Ave. S. Suite 3B</address> <city>Seattle</city> <region>WA</region> <postalcode>98128</postalcode> <country>USA</country> <phone>(206) 555-4112</phone> <fax>(206) 555-4115</fax> </customers> <customers> <customerid>WILMK</customerid> <companyname>Wilman Kala</companyname> <contactname>Matti Karttunen</contactname> <contacttitle>Owner/Marketing Assistant</contacttitle> <address>Keskuskatu 45</address> <city>Helsinki</city> <postalcode>21240</postalcode> <country>Finland</country> <phone>90-224 8858</phone> <fax>90-224 8858</fax> </customers> <customers> <customerid>WOLZA</customerid> <companyname>Wolski Zajazd</companyname> <contactname>Zbyszek Piestrzeniewicz</contactname> <contacttitle>Owner</contacttitle> <address>ul. Filtrowa 68</address> <city>Warszawa</city> <postalcode>01-012</postalcode> <country>Poland</country> <phone>(26) 642-7012</phone> <fax>(26) 642-7012</fax> </customers> 


but in the ajax call when i stringify the json object i am getting as follows

{"d":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n OLDWO\r\n Old World Delicatessen\r\n Rene Phillips\r\n Sales Representative\r\n
2743 Bering St.
\r\n Anchorage\r\n AK\r\n 99508\r\n USA\r\n (907) 555-7584\r\n (907) 555-2880\r\n \r\n \r\n WANDK\r\n Die Wandernde Kuh\r\n Rita Müller\r\n Sales Representative\r\n
Adenauerallee 900
\r\n Stuttgart\r\n 70563\r\n Germany\r\n 0711-020361\r\n 0711-035428\r\n \r\n \r\n WARTH\r\n Wartian Herkku\r\n Pirkko Koskitalo\r\n Accounting Manager\r\n
Torikatu 38
\r\n Oulu\r\n 90110\r\n Finland\r\n 981-443655\r\n 981-443655\r\n \r\n \r\n WELLI\r\n Wellington Importadora\r\n Paula Parente\r\n Sales Manager\r\n
Rua do Mercado, 12
\r\n Resende\r\n SP\r\n 08737-363\r\n Brazil\r\n (14) 555-8122\r\n \r\n \r\n WHITC\r\n White Clover Markets\r\n Karl Jablonski\r\n Owner\r\n
305 - 14th Ave. S. Suite 3B
\r\n Seattle\r\n WA\r\n 98128\r\n USA\r\n (206) 555-4112\r\n (206) 555-4115\r\n \r\n \r\n WILMK\r\n Wilman Kala\r\n Matti Karttunen\r\n Owner/Marketing Assistant\r\n
Keskuskatu 45
\r\n Helsinki\r\n 21240\r\n Finland\r\n 90-224 8858\r\n 90-224 8858\r\n \r\n \r\n WOLZA\r\n Wolski Zajazd\r\n Zbyszek Piestrzeniewicz\r\n Owner\r\n
ul. Filtrowa 68
\r\n Warszawa\r\n 01-012\r\n Poland\r\n (26) 642-7012\r\n (26) 642-7012\r\n \r\n"}


how to properly access the xml data...help..

解决方案

(document).ready(function () {


('#dlcustomers').change(function () { var obj = {}; obj.cusID =


.trim(


这篇关于如何将Xml字符串转换为json对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆