gpt4 book ai didi

c# - 我可以反序列化为一个类并将额外的 JSON 属性放入该类的 JObject 中吗?

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

假设我们有以下 JSON:

{ 
"a": 10,
"b": "foo",
"c": 30,
"d": "bar",
}

和 C# 类:

class Stuff 
{
public int A { get; set; }
public string B { get; set; }
public JObject Others { get; set; }
}

是否有一种简单的方法可以使上述 JSON 的反序列化填充成员 ABa >b 并将 cd 的值作为 JProperties 放入 Others JObject?

最佳答案

是的,您可以使用 Json.Net 的“扩展数据”功能轻松完成此操作。您只需要使用 [JsonExtensionData] 属性标记您的 Others 属性,它就会按照您想要的方式工作。

class Stuff 
{
public int A { get; set; }
public string B { get; set; }
[JsonExtensionData]
public JObject Others { get; set; }
}

演示:

class Program
{
static void Main(string[] args)
{
string json = @"
{
""a"": 10,
""b"": ""foo"",
""c"": 30,
""d"": ""bar"",
}";

var stuff = JsonConvert.DeserializeObject<Stuff>(json);

Console.WriteLine(stuff.A);
Console.WriteLine(stuff.B);
Console.WriteLine(stuff.Others["c"]);
Console.WriteLine(stuff.Others["d"]);
}
}

输出:

10
foo
30
bar

fiddle :https://dotnetfiddle.net/6UVvFI

关于c# - 我可以反序列化为一个类并将额外的 JSON 属性放入该类的 JObject 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214794/

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