我有一个简单的功能:
public JsonResult FetchData(object obj)
{
var jsonData = new { dateTime = DateTime.Today };
jsonData = JsonConvert.DeserializeAnonymousType(obj.ToString(), jsonData);
}
案例A:
如果我使用json数据
{"dateTime":"2018-09-24"}
我可以确定正确的日期:2018-09-24
案例B:
如果我使用json数据,则变量名具有空格
{"dateTime ":"2018-09-24"}
我得到日期:0001-01-01,没有任何例外。
“ dateTime”对我来说不是有效的变量名
我想要的行为是CASE B抛出异常或注意到这种情况无效。我该如何实现?
谢谢
答案 0 :(得分:0)
使用适当的数据结构进行反序列化,您可以使用JsonProperty
属性控制属性名称:
public class Foo
{
[JsonProperty("dateTime ")] //Note the space in here
public DateTime DateTime { get; set; }
}
现在反序列化是这样的:
var result = JsonConvert.DeserializeObject<Foo>(json);