首页 > 解决方案 > 使用 JSON.net 序列化不带引号的 yyyyMMdd 格式日期

问题描述

我制作了一个 dotnet 核心控制台应用程序,它使用 Newtonsoft.Json v12.0.3 序列化自定义对象。

我希望能够在不带引号的情况下序列化我的自定义对象 DateTime 属性。

我试图避免制作自定义 JsonConverter 或将数据类型更改为 int 或其他数字类型。我从这里使用 DateFormatConverter:https ://stackoverflow.com/a/44893493/1440321

[JsonConverter(typeof(DateFormatConverter), "yyyyMMdd")]
[JsonProperty("fileGenerationDate", Order = 3)]
public DateTime FileGenerationDate { get; set; }

期望的输出:

{
    ...
    "fileGenerationDate": 20180919
}

电流输出:

{
    ...
    "fileGenerationDate": "20180919"
}

标签: c#datetimeserializationjson.net

解决方案


您必须创建自己的JsonConverter,因为开箱即用的写入值string和字符串总是用引号序列化......

您可以复制IsoDateTimeConverter的代码并将其更改为将值写入为int.


推荐阅读