假设我们有以下课程:
public class Foo {
public long Id { get; set; }
}
如果给定的json字符串为:
我们怎么告诉newtonsoft json发脾气?{ "Id": 10, "SomethingIrrelevant": "Foobar" }
换句话说,我们希望反序列化非常严格,并且当它检测到发生这种情况的时候就发脾气。
答案 0 :(得分:3)
为您的JsonSerializerSettings
使用MissingMemberHandling.Error
:
var deserialized = JsonConvert.DeserializeObject<Foo>(jsonString,
new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Error
}); // throws with "Could not find member 'SomethingIrrelevant' on object of type 'Foo'."
如果使用Required.Always
和Id
,{em}不存在JsonProperty
,也可以强制它抛出:
public class Foo {
[JsonProperty(Required = Required.Always)]
public long Id { get; set; }
}