反序列化 Xml 个集合
De-Serialize of Xml Collections
我有一个 XML 字符串,如下所示:
<ArrayOfObject>
<Object>
<Properties>
<Property>
<Name>TaskId1</Name>
<Value>xxx</Value>
</Property>
<Property>
<Name>Name</Name>
<Value>demo</Value>
</Property>
</Properties>
</Object>
<Object>
<Properties>
<Property>
<Name>TaskId2</Name>
<Value>xxx</Value>
</Property>
<Property>
<Name>Name</Name>
<Value>demo2</Value>
</Property>
</Properties>
</Object>
</ArrayOfObject>
下面是我的 C# 代码。顺便说一句,我试过使用 xmlArray 和 xmlArrayItem 属性,但没有用。
[XmlRoot(ElementName = "ArrayOfObject", IsNullable = false)]
public class GetTaskListResponse
{
[XmlArray("Object")]
public List<ObjectList> Objects { get; set; }
}
public class ObjectList
{
[XmlArray("Properties")]
[XmlArrayItem("Property")]
public List<Property> PropertyList { get; set; }
}
public class Property
{
public string Name { get; set; }
public string Value { get; set; }
}
如何将此 XML 反序列化为 C# 对象?
我就是想不通。
您可能需要对数据结构进行一些更改。请注意原始结构的变化,尤其是 "Properties/Property" 的处理方式
Xml to CSharp 将是您想要创建对应于您的 Xml.
的 C# 数据结构时参考的好地方
[XmlRoot(ElementName="Property")]
public class Property
{
[XmlElement(ElementName="Name")]
public string Name { get; set; }
[XmlElement(ElementName="Value")]
public string Value { get; set; }
}
[XmlRoot(ElementName="Properties")]
public class Properties
{
[XmlElement(ElementName="Property")]
public List<Property> Property { get; set; }
}
[XmlRoot(ElementName="Object")]
public class Object
{
[XmlElement(ElementName="Properties")]
public Properties Properties { get; set; }
}
[XmlRoot(ElementName="ArrayOfObject")]
public class GetTaskListResponse
{
[XmlElement(ElementName="Object")]
public List<Object> Object { get; set; }
}
这将给出一个输出
我有一个 XML 字符串,如下所示:
<ArrayOfObject>
<Object>
<Properties>
<Property>
<Name>TaskId1</Name>
<Value>xxx</Value>
</Property>
<Property>
<Name>Name</Name>
<Value>demo</Value>
</Property>
</Properties>
</Object>
<Object>
<Properties>
<Property>
<Name>TaskId2</Name>
<Value>xxx</Value>
</Property>
<Property>
<Name>Name</Name>
<Value>demo2</Value>
</Property>
</Properties>
</Object>
</ArrayOfObject>
下面是我的 C# 代码。顺便说一句,我试过使用 xmlArray 和 xmlArrayItem 属性,但没有用。
[XmlRoot(ElementName = "ArrayOfObject", IsNullable = false)]
public class GetTaskListResponse
{
[XmlArray("Object")]
public List<ObjectList> Objects { get; set; }
}
public class ObjectList
{
[XmlArray("Properties")]
[XmlArrayItem("Property")]
public List<Property> PropertyList { get; set; }
}
public class Property
{
public string Name { get; set; }
public string Value { get; set; }
}
如何将此 XML 反序列化为 C# 对象?
我就是想不通。
您可能需要对数据结构进行一些更改。请注意原始结构的变化,尤其是 "Properties/Property" 的处理方式
Xml to CSharp 将是您想要创建对应于您的 Xml.
的 C# 数据结构时参考的好地方[XmlRoot(ElementName="Property")]
public class Property
{
[XmlElement(ElementName="Name")]
public string Name { get; set; }
[XmlElement(ElementName="Value")]
public string Value { get; set; }
}
[XmlRoot(ElementName="Properties")]
public class Properties
{
[XmlElement(ElementName="Property")]
public List<Property> Property { get; set; }
}
[XmlRoot(ElementName="Object")]
public class Object
{
[XmlElement(ElementName="Properties")]
public Properties Properties { get; set; }
}
[XmlRoot(ElementName="ArrayOfObject")]
public class GetTaskListResponse
{
[XmlElement(ElementName="Object")]
public List<Object> Object { get; set; }
}
这将给出一个输出