处理重复的数据模型名称

本文关键字:数据模型 处理 | 更新日期: 2023-09-27 18:27:30

我正在使用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%以上的模型面临的问题。模型本身非常大,上面的例子是我遇到的一个简化的例子来说明这个问题。

在思考这个问题时,我打赌这将是一种相当常见的情况。这是如何处理的?

处理重复的数据模型名称

@mecek指出,重要的是属性名,而不是类名。因此,只需为类指定唯一的名称:

  • EventItem
  • ContextItem

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

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