可能重复:
使用 JSON.Net 解析 ISO 持续时间
鉴于以下片段,
序列化时
var settings = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.IsoDateFormat };
settings.Converters.Add(new IsoDateTimeConverter());
var duration = new TimeSpan(0, 1, 0);
Debug.WriteLine(JsonConvert.SerializeObject(duration, settings));
输出: “00:01:00”
应该输出: “PT1M”
反序列化时
Debug.WriteLine(JsonConvert.DeserializeObject("{\"Duration\": \"PT1M\"}", settings));
失败:将值“PT1M”转换为类型“System.TimeSpan”时出错。路径“持续时间”,第 1 行,位置 19。
然而,此页面 - Json.NET 4.5 第 1 版 - ISO 日期、异步、Metro build另有声明。我错过了什么?