首页 >后端开发 >C++ >如何在 C# 中反序列化具有已知和未知字段的 JSON?

如何在 C# 中反序列化具有已知和未知字段的 JSON?

Linda Hamilton
Linda Hamilton原创
2025-01-18 09:17:10118浏览

How Can I Deserialize JSON with Both Known and Unknown Fields in C#?

C#中已知和未知字段的JSON反序列化

当JSON结果包含已知和未知字段时,通常需要将未知字段映射到字典中,以便于访问和修改。虽然有多种方法可以实现这一点,但使用JSON .NET中的JsonExtensionDataAttribute提供了一种便捷的解决方案。

JsonExtensionDataAttribute 属性允许您指定一个属性来保存额外的未知字段。示例如下:

<code class="language-csharp">public class Product
{
    public string id { get; set; }
    public string name { get; set; }

    [JsonExtensionData]
    private IDictionary<string, JToken> _extraFields;
}</code>

使用此属性,未知字段将存储在_extraFields属性中,这是一个字符串键(字段名)和JToken值(字段值)的字典。这允许您轻松访问和修改代码中的未知字段。

请注意,此方法需要JSON .NET v5版本5或更高版本。如果您使用的是早期版本,则可能需要探索原始文章中提到的其他选项,例如使用自定义契约解析器或自定义转换器。

以上是如何在 C# 中反序列化具有已知和未知字段的 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn