【发布时间】:2016-09-09 08:53:01
【问题描述】:
我找不到用 JSON.NET 序列化派生列表的方法,我开始怀疑它是否可能。让我用一些代码来解释一下情况。
我创建了一个从特定对象列表派生的新类(首先尝试使用通用对象)并添加了一个字符串属性NomGroupe:
public class GroupeActes : List<Acte>
{
public string NomGroupe { get; set; }
public GroupeActes(string nom, List<Acte> liste)
{
NomGroupe = nom;
foreach (var acte in liste)
{
this.Add(acte);
}
}
}
然后,在我的代码中,我声明了一个此类 (List<GroupeActes> listOfGroupeActes) 的列表,并用数据填充它。对于序列化,我使用以下代码:
JsonSerializer serializer = new JsonSerializer();
serializer.TypeNameHandling = TypeNameHandling.All;
using (StreamWriter sw = new StreamWriter(@"listOfGroupeActes.json"))
using (JsonWriter writer = new JsonTextWriter(sw))
{
serializer.Serialize(writer, listOfGroupeActes);
}
我尝试过使用和不使用 TypeNameHandling.All 参数,以及 Json.net 属性的几种组合,甚至使用 DataContract/DataMember。
到目前为止,我只设法在我的 json 文件中获取每个嵌套 List<Acte> 的数据,而没有 NomGroupe 属性,或者相反。但不是两者都有,这是我想要的。
那么两个问题:
- 有可能吗?
- 如果是,我该怎么做?
感谢您的帮助!
【问题讨论】:
-
不能用JsonConvert.SerializeObject()吗?
-
不,可悲的是,问题是一样的。然后忽略
NomGroupe属性。 -
确实,尽管进行了大量研究,但我还没有找到这些...谢谢,这很有趣!