处理重复的数据模型名称

时间:2015-12-21 11:40:56

标签: c# json data-modeling

我在C#中使用JSON连接到相当广泛的在线服务,并注意到它们使用相同的名称和不同的值(和类型)。

在创建JSON模型时,我遇到了不同模型需要不同值类型的问题。

例如。

namespace Mylibrary
{
// event 
public class event
{
    public Item item { get; set; }
    public string type { get; set; }
}

public class Item
{
    public string url { get; set; }
    public string icon { get; set; }
}

// context
public class context
{
    public Item item { get; set; }
    public string creator { get; set; }
}

public class Item
{
    public int index { get; set; }
    public string name { get; set; }
}
}

如果我重命名上面的项目类,我就不能再使用json反序列化器了。但是,当然我得到了一个编译器错误,因为重复的类名" Item"。

我需要为此服务生成超过30个数据模型。仔细观察他们的架构,对于超过90%的模型来说,这将成为一个问题。模型本身非常大,上面的例子是我遇到的用于说明问题的简化示例。

在考虑这个问题时,我认为这是一个相当普遍的事情。这是如何处理的?

1 个答案:

答案 0 :(得分:2)

正如@mecek指出的那样,重要的是属性名称,而不是类名。所以只需给出类的唯一名称:

  • EventItem
  • ContextItem

然后您可以使用JsonProperty重命名属性:

public class Context
{
    [JsonProperty("item")]
    public ContextItem Item { get; set; }

    [JsonProperty("creator")]
    public string Creator { get; set; }
}