Newtosoft Json 反序列化:如果/当给定的 json 字符串具有比必要的属性更多的属性时,如何抛出错误



假设我们有以下类:

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.AlwaysJsonProperty强制它抛出:

public class Foo {
    [JsonProperty(Required = Required.Always)]
    public long Id { get; set; }
}

相关内容

  • 没有找到相关文章

最新更新