我正在尝试反序列化来自 3rd 方提供商的一些 json,偶尔它会返回一些无效的日期字段(如 -0001-01-01 或其他内容)。这会导致进程抛出异常。
有没有办法告诉 Json.Net 忽略无效的字段?
谢谢
马特
为了扩展 David 的回答,我使用了一个自定义的 DateTime 转换器:
public class SafeDateTimeConvertor : DateTimeConverterBase
{
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
DateTime result;
if (DateTime.TryParse(reader.Value.ToString(), out result))
return result;
return existingValue;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((DateTime)value).ToString("yyyy-MM-dd hh:mm:ss"));
}
}
Run Code Online (Sandbox Code Playgroud)
然后像这样应用:
var result = JsonConvert.DeserializeObject<TestClass>(json, new SafeDateTimeConvertor());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3288 次 |
| 最近记录: |