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中文网其他相关文章!