datetime json 序列化時丟掉時區
阿新 • • 發佈:2019-01-28
asp.net mvc web api test client 是個好東西,能夠直接測試api呼叫。
但有一點是,生成datetime型別的測試資料時,是帶有時區的,導致在呼叫的時候,反序列化失敗。不得不手動修改一下時間的格式。
如下圖:
那我們就手動修改一下程式碼,使其序列化時放棄時區吧
程式碼修改對比:
位置:
file: $\Areas\HelpPage\SampleGeneration\HelpPageSampleGenerator.cs
class: HelpPageSampleGenerator
Method: private static string TryFormatJson(string str)
LN: 380
[SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "Handling the failure by returning the original string.")] private static string TryFormatJson(string str) { try { object parsedJson = JsonConvert.DeserializeObject(str); Newtonsoft.Json.Converters.IsoDateTimeConverter timeFormat = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; return JsonConvert.SerializeObject(parsedJson, Formatting.Indented, timeFormat); } catch { // can't parse JSON, return the original string return str; } }
修改以後生成的示例: