gpt4 book ai didi

c# - 如果是 JSON.NET,我应该为可选字段设置任何属性吗

转载 作者:太空狗 更新时间:2023-10-30 00:40:41 25 4
gpt4 key购买 nike

在 JSON.NET 反序列化的情况下,我应该为可选字段设置任何属性吗?我的意思是像

public class Foo
{
[JsonProperty(Required = Required.Default)]
public String foo { get; set; }
}

提前致谢。

最佳答案

如果您的类具有 JSON 没有的属性,则该属性在反序列化后将在您的类中具有默认值。如果您的 JSON 具有您的类没有的属性,那么 Json.Net 将在反序列化期间简单地忽略该属性。您不需要做任何特殊的事情来处理它。

您可以编写简单的测试代码来证明这一点。这里我们有一个 Foo 类,它具有属性 AC,而我们要反序列化的 JSON 具有属性 AB。当我们反序列化时,我们看到 A 被填充,B 被忽略(不在类中)并且 C 具有默认值 null(不在 JSON 中)。

class Program
{
static void Main(string[] args)
{
string json = @"{ ""A"" : ""one"", ""B"" : ""two"" }";

Foo foo = JsonConvert.DeserializeObject<Foo>(json);

Console.WriteLine("A: " + (foo.A == null ? "(null)" : foo.A));
Console.WriteLine("C: " + (foo.C == null ? "(null)" : foo.C));
}

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

输出:

A: one
C: (null)

关于c# - 如果是 JSON.NET,我应该为可选字段设置任何属性吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25182487/

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