[C#] JObject 會將 json 中含有時區的訊息遺失?

.NET 環境操作 json 時一般都是使用 JSON.NET,效能不錯又有許多方便的物件可以使用,之前黑大就有分享一篇 使用dynamic簡化Json.NET JObject操作,不過最近在使用 JObject 時有踩到一個雷與大家分享。


JObject 預設會對它認為是時間的字串進行轉換,但若我們使用 String 的方式輸出則會遺失時區的資訊,範例如下:

若改用 DateTime 輸出則可以正常印出時區的資訊,範例如下:

但若想要輸出 String 又想要保留原始 json 中的完整 ISO8601 內容怎麼辦?
沒問題,JSON.NET 都幫我們預留方法了,可以使用 JObject.Load() 並改變 JsonTextReader.DateParseHandling 即可,範例如下:



這裡的資訊對您有用嗎?請我飲一杯咖啡?