gpt4 book ai didi

c# - 使用 Json.Net 反序列化时设置必填字段

转载 作者:行者123 更新时间:2023-11-30 16:59:32 25 4
gpt4 key购买 nike

我有一个 Foo 类,如下所示

public class Foo
{
public ClassA A {get;set;}
public string B {get;set;}
}
public class ClassA
{
public string C {get;set;}
}

当我得到一个 Json 字符串(比如 fooJson)时,我想将它反序列化为具有以下条件的 Foo 对象

  1. 对象必须有属性 Foo.A
  2. Foo.B 是可选的
  3. Foo.A.C 是可选的

我尝试使用 MissingMemberHandling = MissingMemberHandling.Error 作为我的 JsonSerializerSettings 的一部分。但即使缺少 Foo.B 也会引发错误。

最佳答案

如果您希望某些属性是可选的而某些属性是必需的,实现此目的的最简单方法是使用 [JsonProperty] 属性标记您的类,指示哪些属性是必需的,例如:

public class Foo
{
[JsonProperty(Required = Required.Always)]
public ClassA A { get; set; }
public string B { get; set; }
}
public class ClassA
{
public string C { get; set; }
}

关于c# - 使用 Json.Net 反序列化时设置必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com