【发布时间】:2012-07-02 19:43:09
【问题描述】:
我有以下 XML:
<Root>
<EventSet>
<Event>
<id>12345</id>
<rant>
<localTime>
<dst>true</dst>
<time>7/2/2012 14:30</time>
</localtime>
<randomRant>
<random>to illustrate point</random>
<rant>help me!</rant>
</randomRant>
</rant>
</Event>
<Event>/*another event*/</Event>
<Event>/*another event*/</Event> //etc
</EventSet>
</Root>
我想把它映射到:
[Serializable]
public class Events
{
public List<Event> events { get; set; }
}
[Serializable]
public class Event
{
public int id { get; set; }
public Rant rant { get; set; } //this is where I get confused
}
问题:如何序列化<rant> 中的标签?在子标签没有子标签之前,我是否继续制作父类的序列化类?例如,如下:
[Serializable]
public class Rant
{
public LocalTime localTime { get; set; }
public RandomRant randomRant { get; set; }
}
[Serializable]
public class LocalTime
{
public bool dst { get; set; }
public DateTime time { get; set; }
}
[Serializable]
public class RandomRant
{
public string random { get; set; }
public string rant { get; set; }
}
或者有更好的方法吗?
编辑:给定的event 有一个且只有一个id,以及一个且只有一个rant。为了我的问题,假设我的类型是有效的。我希望将嵌套的 XML 反序列化为一个对象。
【问题讨论】:
-
localTime 和 utcTime 是数组还是单个值?
-
我不确定你的问题是什么。您是否尝试以两种格式(本地和 UTC)存储单个 DateTime?还是这两个 DateTimes 代表不同的值(不仅仅是 TimeZone 差异)?埃里克
-
我更改了我的 XML。与
DateTime格式无关。我想知道如何将带有嵌套标签的 XML 反序列化为对象。
标签: c# xml deserialization