.netcore3.0 System.Text.Json 日期格式化

.netcore3.0 的json格式化不再默認(rèn)使用Newtonsoft.Json饵溅,而是使用自帶的System.Text.Json來處理勘伺。
理由是System.Text.Json 依賴更少勿负,效率更高栏笆。

webapi定義的參數(shù)如果是個datetime類型的話 比如

public class Input
{
     public DateTime?Begin{get;set;}
     public DateTime?End{get;set;}
}

webapi的controller中定義的action

public dynamic GetList([FromBody]Input input)
{
   ……
}

這是一個常用的場景

如果請求傳入的 日期格式是 {"begin":"2019-10-12","end":"2019-10-13"} 服務(wù)端會報(bào)錯 無法解析字符串為DateTime類型鲁驶,
這時候就需要增加類型轉(zhuǎn)換的處理方式

public class SystemTextJsonConvert
    {
        public class DateTimeConverter : JsonConverter<DateTime>
        {
            public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
            {
                return DateTime.Parse(reader.GetString());
            }

            public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
            {
                writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
            }
        }

        public class DateTimeNullableConverter : JsonConverter<DateTime?>
        {
            public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
            {
                return string.IsNullOrEmpty(reader.GetString()) ? default(DateTime?) : DateTime.Parse(reader.GetString());
            }

            public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options)
            {
                writer.WriteStringValue(value?.ToString("yyyy-MM-dd HH:mm:ss"));
            }
        }
    }

JsonConverter中包含 read和write的抽象方法 俱两,只要重寫這兩個方法,規(guī)定輸入轉(zhuǎn)換的方式和輸出格式化的方法就行了痛侍。

在 setup中增加配置

  services.AddControllers().AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.Converters.Add(new Common.SystemTextJsonConvert.DateTimeConverter());
                options.JsonSerializerOptions.Converters.Add(new Common.SystemTextJsonConvert.DateTimeNullableConverter());
            }).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

這個時候再請求接口朝氓,就能正常轉(zhuǎn)換日期類型了,
同樣返回日期格式不是在 日期和時間中間有個 “T” 了主届,而是 yyyy-MM-dd HH:mm:ss正常的格式了赵哲。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市君丁,隨后出現(xiàn)的幾起案子誓竿,更是在濱河造成了極大的恐慌,老刑警劉巖谈截,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筷屡,死亡現(xiàn)場離奇詭異,居然都是意外死亡簸喂,警方通過查閱死者的電腦和手機(jī)毙死,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喻鳄,“玉大人扼倘,你說我怎么就攤上這事。” “怎么了再菊?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵爪喘,是天一觀的道長。 經(jīng)常有香客問我纠拔,道長秉剑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任稠诲,我火速辦了婚禮侦鹏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臀叙。我一直安慰自己略水,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布劝萤。 她就那樣靜靜地躺著渊涝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪床嫌。 梳的紋絲不亂的頭發(fā)上驶赏,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機(jī)與錄音既鞠,去河邊找鬼。 笑死盖文,一個胖子當(dāng)著我的面吹牛嘱蛋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播五续,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼洒敏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疙驾?” 一聲冷哼從身側(cè)響起凶伙,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎它碎,沒想到半個月后函荣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳肛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年傻挂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挖息。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡金拒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出套腹,到底是詐尸還是另有隱情绪抛,我是刑警寧澤资铡,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站幢码,受9級特大地震影響笤休,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛤育,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一宛官、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓦糕,春花似錦底洗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圣勒,卻和暖如春费变,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背圣贸。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工挚歧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吁峻。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓滑负,卻偏偏與公主長得像,于是被迫代替她去往敵國和親用含。 傳聞我的和親對象是個殘疾皇子矮慕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359