如何禁用JArray.Parse时的自动日期时间转换?
解决JArray.Parse自动转换日期字符串为UTC DateTime的问题
你需要用到JsonLoadSettings里的DateParseHandling属性,设置为DateParseHandling.None就能禁用自动日期转换,让原始字符串格式完全保留。
直接上代码示例:
var loadSettings = new JsonLoadSettings { DateParseHandling = DateParseHandling.None }; JArray ja = JArray.Parse(fromString, loadSettings);
Newtonsoft.Json默认会把符合ISO日期格式的字符串自动解析成DateTime对象并转成UTC格式,设置这个选项后,所有日期格式的字符串都会被当作普通字符串处理,不会触发自动转换逻辑,和你在Postman里看到的原始格式一致。
如果只是需要针对startDate、endDate这两个特定字段保留原始字符串,而其他日期字段正常转换,可以自定义一个JsonConverter,不过如果没有这种特殊需求,上面的全局设置是最简单直接的方案。
内容的提问来源于stack exchange,提问作者Donald
相关产品推荐
相关产品推荐

