Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Json接口序列化_C#_Json - Fatal编程技术网

C#Json接口序列化

C#Json接口序列化,c#,json,C#,Json,是否有人可以帮助我实现IList的序列化。我在JsonConvert.SerializeObject的帮助下成功地序列化了它,但是。。。假设我有这样的课程: public class Show : IShow { public string Name { get; set; } public IList<IEpisode> Episodes { get; set; } public int Count { get; set; } } public

是否有人可以帮助我实现
IList
的序列化。我在
JsonConvert.SerializeObject
的帮助下成功地序列化了它,但是。。。假设我有这样的课程:

public class Show : IShow
{
    public string Name { get; set; }
    public IList<IEpisode> Episodes { get; set; }
    public int Count { get; set; }       
}
public class Episode : IEpisode
{
    public string Name { get; set; }
    public DateTime Date { get; set; }
    public IList<ILink> Links { get; set; }
}
public class Link : ILink
{
    public string URL { get; set; }
    public string Name { get; set; }
    public string Quality { get; set; }
}
但我想在每个节目(show)之前添加额外的标签,在所有节目之前添加另一个标签(shows)


有人知道怎么做吗?

这可能不是JSON的本意,我觉得它的结构很好

但如果你真的需要,你可以这样做:

public class Root {
    public IList<ShowWrapper> Shows { get; set;}
}
public class ShowWrapper { //silly name though ;)
    public IShow Show { get; set;}
}
公共类根目录{
公共IList显示{get;set;}
}
公共类ShowWrapper{//尽管名称很傻;)
public IShow Show{get;set;}
}
并序列化根的实例,而不是

IList<IShow>. 
IList。
这将产生所需的结构,但感觉非常不自然


顺便说一句,您使用的是什么序列化程序。可能有人知道一种不太“手动”的方法来实现这一点。

我对JSON不太熟悉,所以这可能不是最好的方法。我会接受你的建议,我会保留你的建议。顺便说一句,我使用的是
JsonConvert.SerializeObject
。谢谢您的回答。@OndřejDlesk作为一条建议,除非您明确尝试匹配指定的JSON格式,或者您正在处理第三方的格式,否则您不应该关心JSON的外观。只要你能逻辑地设计你的类结构(你在这里有),这就是你应该担心的一切@OndřejDlesk:当你编辑问题并在那里留下关于JsonConvert的提示时,会对未来的读者有所帮助。
IList<IShow>.