本文介绍了Newtosoft Json反序列化:如果/当给定的json字符串具有比必要的属性更多的属性时,如何引发错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我们有以下课程:
public class Foo {
public long Id { get; set; }
}
如果给定的json字符串为:
How can we tell newtonsoft json to throw a tantrum if a given json-string is:
{ "Id": 10, "SomethingIrrelevant": "Foobar" }
换句话说,我们希望反序列化非常严格,并且当它检测到发生这种情况的时候就发脾气.
In other words we want the deserialization to be ultra-strict and throw a tantrum when it detects anything fishy of this sort taking place.
推荐答案
使用 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
:
public class Foo {
[JsonProperty(Required = Required.Always)]
public long Id { get; set; }
}
这篇关于Newtosoft Json反序列化:如果/当给定的json字符串具有比必要的属性更多的属性时,如何引发错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!