假设我们有以下类:
public class Foo {
public long Id { get; set; }
}
如果给定的 json 字符串是,我们如何告诉 newtonsoft json 发脾气:
{ "Id": 10, "SomethingIrrelevant": "Foobar" }
换句话说,我们希望反序列化是超严格的,当它检测到任何此类可疑的事情发生时,它会发脾气。
MissingMemberHandling.Error
表示您的JsonSerializerSettings
:
var deserialized = JsonConvert.DeserializeObject<Foo>(jsonString,
new JsonSerializerSettings
{
MissingMemberHandling = MissingMemberHandling.Error
}); // throws with "Could not find member 'SomethingIrrelevant' on object of type 'Foo'."
如果不存在Id
,您也可以使用带有Required.Always
的JsonProperty
强制它抛出:
public class Foo {
[JsonProperty(Required = Required.Always)]
public long Id { get; set; }
}