使用类型化 C# 对象进行嵌套 JSON 反序列化
将嵌套 JSON 反序列化为平面字典
ObjectAsPrimitiveConverter
以下代码提供了一个名为 ObjectAsPrimitiveConverter 的自定义 JsonConverter:
public class ObjectAsPrimitiveConverter : JsonConverter<object> { // ... (converter implementation) }
转换器配置
要配置转换器,请指定所需的 FloatFormat(双精度或十进制)、UnknownNumberFormat(错误或 JsonElement)和 ObjectFormat(ExpandoObject 或 Dictionary
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter(...) }, WriteIndented = true, };
反序列化为对象
要将嵌套 JSON 反序列化为对象(如果使用 ExpandoObject,则为动态),请使用:
dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
自定义
可以自定义转换器以支持不同的数字类型和对象格式。此外,它还可以扩展以更优雅地处理不支持的 JSON 数字。
结论
通过实现自定义 JsonConverter,您可以实现嵌套 JSON 对象的特定于类型的反序列化转换为分层数据结构,每个属性都有适当的 C# 类型。
以上是如何将嵌套 JSON 反序列化为类型化 C# 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!