本文介绍了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.

推荐答案

使用 JsonSerializerSettingsMissingMemberHandling.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字符串具有比必要的属性更多的属性时,如何引发错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 11:37