处理重复的数据模型名称
本文关键字:数据模型 处理 | 更新日期: 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; }
}