C# XmlSerializer反序列化列表仅获取第一项
这是我从API获得的XML:C# XmlSerializer反序列化列表仅获取第一项,c#,xml,C#,Xml,这是我从API获得的XML: <?xml version="1.0" encoding="UTF-8"?> <response> <datetime>2015-05-18 11:37:32</datetime> <count>2</count> <smsleft>40920</smsleft> <sms><smsid>535041581</smsid><sm
<?xml version="1.0" encoding="UTF-8"?>
<response>
<datetime>2015-05-18 11:37:32</datetime>
<count>2</count>
<smsleft>40920</smsleft>
<sms><smsid>535041581</smsid><smsid>535041583</smsid></sms>
</response>
但是,我在结果中只得到列表中的第一个SmsID,而不是响应中的2个SmsID
我做错了什么?您已将
SmsID
声明为字符串,因此只能反序列化单个字符串。您已将Sms
声明为列表,但输入文件中只存在一个列表
尝试:
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(“sms”)]
[XmlArrayItem(“smsid”)]
公共列表SmsID{get;set;}
}
您已将SmsID
声明为字符串
,因此只能反序列化单个字符串。您已将Sms
声明为列表,但输入文件中只存在一个列表
尝试:
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(“sms”)]
[XmlArrayItem(“smsid”)]
公共列表SmsID{get;set;}
}
您已将SmsID
声明为字符串
,因此只能反序列化单个字符串。您已将Sms
声明为列表,但输入文件中只存在一个列表
尝试:
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(“sms”)]
[XmlArrayItem(“smsid”)]
公共列表SmsID{get;set;}
}
您已将SmsID
声明为字符串
,因此只能反序列化单个字符串。您已将Sms
声明为列表,但输入文件中只存在一个列表
尝试:
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(“sms”)]
[XmlArrayItem(“smsid”)]
公共列表SmsID{get;set;}
}
将您的代码更改为
[XmlRoot("response")]
public class SMSResponse
{
[XmlElement("sms")]
public SMS Sms { get; set; }
}
public class SMS
{
[XmlElement("smsid")]
public List<string> SmsID { get; set; }
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlElement(“sms”)]
公共SMS{get;set;}
}
公共类短信
{
[XmlElement(“smsid”)]
公共列表SmsID{get;set;}
}
将您的代码更改为
[XmlRoot("response")]
public class SMSResponse
{
[XmlElement("sms")]
public SMS Sms { get; set; }
}
public class SMS
{
[XmlElement("smsid")]
public List<string> SmsID { get; set; }
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlElement(“sms”)]
公共SMS{get;set;}
}
公共类短信
{
[XmlElement(“smsid”)]
公共列表SmsID{get;set;}
}
将您的代码更改为
[XmlRoot("response")]
public class SMSResponse
{
[XmlElement("sms")]
public SMS Sms { get; set; }
}
public class SMS
{
[XmlElement("smsid")]
public List<string> SmsID { get; set; }
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlElement(“sms”)]
公共SMS{get;set;}
}
公共类短信
{
[XmlElement(“smsid”)]
公共列表SmsID{get;set;}
}
将您的代码更改为
[XmlRoot("response")]
public class SMSResponse
{
[XmlElement("sms")]
public SMS Sms { get; set; }
}
public class SMS
{
[XmlElement("smsid")]
public List<string> SmsID { get; set; }
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlElement(“sms”)]
公共SMS{get;set;}
}
公共类短信
{
[XmlElement(“smsid”)]
公共列表SmsID{get;set;}
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(ElementName=“sms”)]
[XmlArrayItem(ElementName=“smsid”,Type=typeof(smsid))]
公共列表Sms{get;set;}
}
公共类smsid
{
[XmlText]
公共字符串SmsID{get;set;}
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(ElementName=“sms”)]
[XmlArrayItem(ElementName=“smsid”,Type=typeof(smsid))]
公共列表Sms{get;set;}
}
公共类smsid
{
[XmlText]
公共字符串SmsID{get;set;}
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(ElementName=“sms”)]
[XmlArrayItem(ElementName=“smsid”,Type=typeof(smsid))]
公共列表Sms{get;set;}
}
公共类smsid
{
[XmlText]
公共字符串SmsID{get;set;}
}
[XmlRoot(“响应”)]
公共类SMS响应
{
[XmlArray(ElementName=“sms”)]
[XmlArrayItem(ElementName=“smsid”,Type=typeof(smsid))]
公共列表Sms{get;set;}
}
公共类smsid
{
[XmlText]
公共字符串SmsID{get;set;}
}
[XmlRoot("response")]
public class SMSResponse
{
[XmlArray(ElementName = "sms")]
[XmlArrayItem(ElementName = "smsid", Type = typeof(smsid))]
public List<smsid> Sms { get; set; }
}
public class smsid
{
[XmlText]
public string SmsID { get; set; }
}