C# JSON 接口序列化



有人可以帮助我序列化IList<IShows>.我设法在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; }
}

我得到类似的东西:

[
  {
    "Name": "Supernatural",
    "Episodes": [
      {
        "Name": "There's Something About Mary",
        "Date": "2017-05-12T02:20:05+01:00",
        "Links": [
          {
            "URL": "url",
            "Name": "HDTV",
            "Quality": "480p"
          },
          {
            "URL": "url",
            "Name": "HDTV",
            "Quality": "720p"
          }
        ]
      }
    ]
  }
]
但我想在每个节目(节目(之前添加额外的标签,在所有节目

之前添加另一个标签(节目(。

有人知道该怎么做吗?

这可能不是 JSON 的本意,结构对我来说看起来不错。

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

public class Root {
    public IList<ShowWrapper> Shows { get; set;}
}
public class ShowWrapper { //silly name though ;)
    public IShow Show { get; set;}
}

并序列化根的实例而不是

IList<IShow>. 

这应该产生所需的结构,但感觉非常不自然。

顺便说一句,您使用什么序列化程序。也许有人知道一种不那么"手动"的方式来实现这一目标。

最新更新