当前位置:编程学习 > C#/ASP.NET >>

关于XML的反序化的问题求教

通过HttpRequest方式向淘宝OpenAPI平台发起请求,请求返回的是一个XML结构的字符串。

XML文件的格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<rsp>
     <totalResults>795</totalResults>
     <trade>
           <seller_nick><![CDATA[优衣库官方旗舰店]]></seller_nick>
           <buyer_nick><![CDATA[金缕衣_2007]]></buyer_nick>
           <title><![CDATA[优衣库官方旗舰店]]></title>
           <created>2009-11-22 10:32:47</created>
           <type><![CDATA[fixed]]></type>
           <tid><![CDATA[2732109708]]></tid>
           <sid><![CDATA[2732109708]]></sid>
           <payment><![CDATA[399.00]]></payment>
           <status><![CDATA[TRADE_CLOSED]]></status>
           <pay_time>2009-11-22 10:44:38</pay_time>
           <modified>2009-12-01 11:31:34</modified>
     </trade>
</rsp>
<!--vx015093.cm3-->


现在想实现的功能是,在接收到这个返回的XML字符串之后,如何根据这个字符串里面的XML结构,生成一个数据对象。
因为对C#不熟悉,在此请教各位了。

我在PHP里面的写法是这样的:

$JSON = new Services_JSON();

$r = $JSON->decode($Response_Text);

这样在PHP中,$r 就会自动生成一个对象。然后我就可以 $r->rsp->totalResults 来获取 totalResults 的值。

如果在C# 中,也实现这样的功能,需要怎么做。


--------------------编程问答-------------------- 没人回复?

我没把问题描述清楚,还是这个问题无法解决? --------------------编程问答-------------------- Newtonsoft.Json.DLL --------------------编程问答-------------------- Newtonsoft.Json.DLL

这个类我尝试过,不过没在文档里面找到如何将 XML字符串 转换过去。

我一开始的设想是,如果 XML字符串不能自动转成一个 数据对象,那我就把 XML字符串转成一个  JSON格式的字符串

然后通过  Newtonsoft.Json 里面的  Jobject来实现。

--------------------编程问答-------------------- 碰到一个新问题。

在使用 Newtonsoft.JSON.Linq 的时候。

string  rs = "{\"rsp\":{\"totalResults\":\"366\",\"trades\":[{\"tid\":\"2747813410\"}]}}";
JObject objData = (JObject)parseString(rs, "json");

可以通过  objData["rsp"]["totalResults"].Value<string>() 来获取到 totalResults的值。

但是对于 trades 里面包含的 tid 数组,不知道如何下手。

怎么才能获取这个数组里面的内容呢?
--------------------编程问答-------------------- 不知道生成匿名对象,嵌套,var object=new {new{...},new {..}},. --------------------编程问答-------------------- 刚刚想到一个非常愚蠢的办法来解决问题。

不过实在是太愚蠢了,令人发指。

string  rs = "{\"rsp\":{\"totalResults\":\"366\",\"trades\":[{\"tid\":\"2747813410\"}]}}";
string  rrss = "";
JObject objData = JObject.parse(rs); 

rrss = objData["rsp"]["trades"].ToString();
JArray arrData = JArray.parse(rrss);

数组arrData里面的就是我需要的内容了。

这种方法简直愚蠢到极点。实在不想这么写。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,