如果JSON中的JavaScript對象不會反序列化到我想要的C#對象,我該如何詢問它以提供解釋輸入錯誤的錯誤消息? (假設JSON格式是正確的,只是數據是無效的。)在反序列化爲C#對象之前驗證JSON
我的C#類:(簡體)
public class Dependent
{
public Dependent()
{
}
public string FirstName { get; set; }
public DateTime DateOfBirth { get; set; }
}
測試代碼進行反序列化:
string dependents = @"[
{
""FirstName"": ""Kenneth"",
""DateOfBirth"": ""02-08-2013""
},
{
""FirstName"": ""Ronald"",
""DateOfBirth"": ""08-07-2011""
}
]";
JavaScriptSerializer jss = new JavaScriptSerializer();
List<Dependent> deps = new List<Dependent>();
deps = jss.Deserialize<List<Dependent>>(dependents);
這一切都有效。除非傳入非日期作爲生日,否則將無法反序列化。
我想提供一個錯誤消息,如「依賴2出生日期不是有效日期」。或「受撫養人2必須在18歲以下」。
如何驗證JSON的細節,如果它不會反序列化到我的對象?
可能的解決辦法:
public class SerializableDependent
{
public SerializableDependent()
{
}
public string FirstName { get; set; }
public string DateOfBirth { get; set; }
}
然後,我不應該擁有一切作爲一個字符串的任何錯誤,我可以通過對象循環和做我的驗證。這似乎是錯誤的。
不例外解釋這個問題? – 2014-10-03 21:44:45