我正在调用REST Web服务。
响应看起来像这样:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<data>
<status>1</status>
<message>OK</message>
<results>
<result>
<account>12345</account>
<to>012345678</to>
<from>054321</from>
<message>Testing</message>
<flash></flash>
<replace></replace>
<report></report>
<concat></concat>
<id>f8d3eea1cbf6771a4bb02af3fb15253e</id>
</result>
</results>
</data>
我有一个名为“SMSSendingResponse”的类,如下所示:
public class SMSSendingResponse
{
public string AccountNumber { get; set; }
public string Status { get; set; }
public string Message { get; set; }
public string ResponseID { get; set; }
public SMSMessage SMSMessage { get; set; }
}
SMSMessage看起来像这样:
public class SMSMessage
{
public string To { get; set; }
public string From { get; set; }
public string Message { get; set; }
}
正如你所看到的,我忽略了一些返回的元素(闪存,替换等等)。
将返回的XML序列化到此对象的最佳方法是什么?
我尝试使用XmlSerializer,但这引发了一个错误...我猜是因为我没有先使用XmlSerializer进行序列化。
如果是Json,我会使用NewtonSoft.Json库...... 虽然我认为我可以将xml转换为json,然后以这种方式序列化,有更好的方法吗?
答案 0 :(得分:2)
只要将适当的属性添加到类的字段中,就可以使用XmlSerializer
。 Check these out for an example of some。毫无疑问,你在使用它的前几次会遇到错误,但坚持下去,因为一旦你弄明白,它就是一个很好的工具。
编辑:
Here is a better place to find all of the available attributes。在列表中查找以Xml开头并以Attribute结尾的任何内容。你会想知道所有这些。
答案 1 :(得分:0)
您可以使用xsd.exe从xml文件中提取架构并生成相应的c#类。您可以使用生成的类来序列化和反序列化xml。如果您显示代码,我们将能够更轻松地识别错误。