关于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#