C# 反序列化XML数组
我使用单个元素进行反序列化。但是当我有一个xml元素数组时,我的代码就不起作用了 下面是我的代码 XML: 下面是反序列化的代码:C# 反序列化XML数组,c#,xml-serialization,xml-deserialization,C#,Xml Serialization,Xml Deserialization,我使用单个元素进行反序列化。但是当我有一个xml元素数组时,我的代码就不起作用了 下面是我的代码 XML: 下面是反序列化的代码: CarDetails[] details; XmlSerializer serializer = new XmlSerializer(typeof(CarDetails[])); using (TextReader reader = new StringReader(output)) {
CarDetails[] details;
XmlSerializer serializer = new XmlSerializer(typeof(CarDetails[]));
using (TextReader reader = new StringReader(output))
{
details= (CarDetails[])serializer.Deserialize(reader);
}
请帮助我如何反序列化XML数组首先,您的XML无效
<color>blue<color>
蓝色
你忘了在这里关上颜色。
其次,最好不要自己动手。最好使用一些工具来实现它。喜欢您可以找到类似的JSON。在我的例子中,它给出了这个结果(看看数据类):
[XmlRoot(ElementName=“body”)]
公共阶级团体{
[xmlement(ElementName=“color”)]
公共字符串颜色{get;set;}
[xmlement(ElementName=“type”)]
公共字符串类型{get;set;}
}
[XmlRoot(ElementName=“details”)]
公开课详情{
[xmlement(ElementName=“year”)]
公共字符串年份{get;set;}
[xmlement(ElementName=“make”)]
公共字符串Make{get;set;}
}
[XmlRoot(ElementName=“cars”)]
公车{
[xmlement(ElementName=“body”)]
公共机构主体{get;set;}
[xmlement(ElementName=“details”)]
公共详细信息{get;set;}
}
[XmlRoot(ElementName=“data”)]
公共类数据{
[xmlement(ElementName=“cars”)]
公共列表车辆{get;set;}
}
您遇到了什么错误?哇,太酷了!,非常感谢XML2C链接!
CarDetails[] details;
XmlSerializer serializer = new XmlSerializer(typeof(CarDetails[]));
using (TextReader reader = new StringReader(output))
{
details= (CarDetails[])serializer.Deserialize(reader);
}
<color>blue<color>
[XmlRoot(ElementName="body")]
public class Body {
[XmlElement(ElementName="color")]
public string Color { get; set; }
[XmlElement(ElementName="type")]
public string Type { get; set; }
}
[XmlRoot(ElementName="details")]
public class Details {
[XmlElement(ElementName="year")]
public string Year { get; set; }
[XmlElement(ElementName="make")]
public string Make { get; set; }
}
[XmlRoot(ElementName="cars")]
public class Cars {
[XmlElement(ElementName="body")]
public Body Body { get; set; }
[XmlElement(ElementName="details")]
public Details Details { get; set; }
}
[XmlRoot(ElementName="data")]
public class Data {
[XmlElement(ElementName="cars")]
public List<Cars> Cars { get; set; }
}