【问题标题】:Is there a good way to create general property name can support multi properties?有没有创建通用属性名可以支持多属性的好方法?
【发布时间】:2021-01-27 00:40:27
【问题描述】:

我需要创建一个用于 JsonConvert 的数据类。除了以下属性之外,大部分用于转换的资源字符串都是相同的:

public class DataType
{
        public DateTimeOffset CreateDate { get; set; }
        public DateTimeOffset Create_Date { get; set; }
}

因为在资源字符串中有两种类型: "create_date": "2021-01-15T18:43:13.061+0000", & “创建日期”:“2021-01-15T18:43:13.061+0000”,

使用以下 JsonConvert:

JsonConvert.DeserializeObject<DataType>(resourceStr);

日期时间属性之一的输出将是错误值。有没有一种使用一个属性来处理这两种格式的好方法?

【问题讨论】:

  • editminimal reproducible example 的问题在代码中包含内联 JSON 值作为常量。非常不清楚究竟什么不起作用以及您期望发生什么。

标签: c# datetime json.net jsonconvert


【解决方案1】:

通过添加另一个具有更改名称的私有属性来解决。然后该类将支持使用单个显示名称转换 CreateDate 和 Create_Date;

public DateTimeOffset CreateDate { get; set; }

[JsonProperty("Create_Date")]
        private DateTimeOffset CreateDate2
        {
            set => CreateDate = value;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-08
    • 2011-08-02
    • 2021-05-07
    • 1970-01-01
    • 2012-08-20
    • 2021-12-08
    • 1970-01-01
    • 2021-07-26
    相关资源
    最近更新 更多