c# - 如何在两个不同的类上使用相同的 JsonProperty 名称
问题描述
如何在两个不同的类上使用相同的 jsonProperty 名称。可能吗。请告知我如何实现这一目标。谢谢
[JsonProperty("Data")]
public RegisteredMailData[] RegisteredMailData { get; set; }
[JsonProperty("Data")]
public SendRecieveShipmentData[] SendRecieveShipmentData { get; set; }
编辑 - 添加模型以便更好地理解
public partial class MailRoomList
{
[JsonProperty("GetListItemsResult")]
public GetListItemsResult GetListItemsResult { get; set; }
}
public partial class GetListItemsResult
{
[JsonProperty("Data")]
public RegisteredMailData[] RegisteredMailData { get; set; }
[JsonProperty("Data")]
public SendRecieveShipmentData[] SendRecieveShipmentData { get; set; }
[JsonProperty("ErrorDetail")]
public ErrorDetail ErrorDetail { get; set; }
[JsonProperty("Result")]
public bool Result { get; set; }
}
public class SendRecieveShipmentData
{
[JsonProperty("__type")]
public string __type { get; set; }
[JsonProperty("Address")]
public object Address { get; set; }
[JsonProperty("Company Name")]
public string CompanyName { get; set; }
[JsonProperty("Doc Type")]
public object DocType { get; set; }
[JsonProperty("Line Manager Approva")]
public string LineManagerApprova { get; set; }
[JsonProperty("Material_x0028_Detail_x0029_")]
public object Material_x0028_Detail_x0029_ { get; set; }
[JsonProperty("Name")]
public string Name { get; set; }
[JsonProperty("PKG Type")]
public object PKGType { get; set; }
[JsonProperty("Request Category")]
public object RequestCategory { get; set; }
[JsonProperty("Sender Address")]
public string SenderAddress { get; set; }
[JsonProperty("Sender Company")]
public object SenderCompany { get; set; }
[JsonProperty("Sender Name")]
public string SenderName { get; set; }
[JsonProperty("Sender Phone")]
public string SenderPhone { get; set; }
[JsonProperty("Sender Zip Code")]
public object SenderZipCode { get; set; }
[JsonProperty("Shipping Companies")]
public string ShippingCompanies { get; set; }
[JsonProperty("Shipping Services")]
public string ShippingServices { get; set; }
[JsonProperty("Telephone")]
public object Telephone { get; set; }
[JsonProperty("Title")]
public string Title { get; set; }
[JsonProperty("ZIP Code")]
public object ZIPCode { get; set; }
}
public partial class RegisteredMailData
{
[JsonProperty("__type")]
public string Type { get; set; }
[JsonProperty("Collecting Date")]
public string CollectingDate { get; set; }
[JsonProperty("Created")]
public string Created { get; set; }
[JsonProperty("Designee ين_x0")]
public string Designeeين_X0 { get; set; }
[JsonProperty("Mobile phone")]
public string MobilePhone { get; set; }
[JsonProperty("Receipent Date")]
public string ReceipentDate { get; set; }
[JsonProperty("Shipping Companies")]
public string ShippingCompanies { get; set; }
[JsonProperty("Status")]
public string Status { get; set; }
[JsonProperty("Tel Number")]
public string TelNumber { get; set; }
[JsonProperty("Title")]
public object Title { get; set; }
}
解决方案
这似乎是一个可以使用泛型解决的 XY 问题
public partial class MailRoomList<T> {
[JsonProperty("GetListItemsResult")]
public GetListItemsResult<T> GetListItemsResult { get; set; }
}
public class GetListItemsResult<T> {
[JsonProperty("Data")]
public T[] Data { get; set; }
[JsonProperty("ErrorDetail")]
public ErrorDetail ErrorDetail { get; set; }
[JsonProperty("Result")]
public bool Result { get; set; }
}
这样在反序列化时你可以做
var result = JsonConvert.DeserializeObject<MailRoomList<RegisteredMailData>>(json);
并可以访问所需的类型数组
推荐阅读
- php - Symfony 从树枝生成的路径中删除“index.php”
- java - WebClient reactor.core.Exceptions$ErrorCallbackNotImplemented
- html - 擦洗音频时如何听到声音播放
- php - 如何动态构建此查询 - Laravel/Lumen
- react-native - React Native - 使用功能组件导航
- python - 如何检查列表中的元素是否为空?
- python - Pandas:按优先级(基于条件)将数据减去-添加到连续行,直到达到值
- html - 字符﷼不能贴在数字前面
- google-sheets - 满足与行数据和动态日期列匹配的条件的总和值
- excel - 更改 Excel 复选框值