使用正确的 C# 类型将嵌套 JSON 反序列化为对象的嵌套字典
在 C# .Net Core 3.1 中使用 System.Text.Json,反序列化将 JSON 对象嵌套到 Dictionary
自定义 JsonConverter: ObjectAsPrimitiveConverter
As System.Text.Json 缺少内置 -为了支持将自由格式的 JSON 反序列化为原始类型,我们需要一个自定义的 JsonConverter, ObjectAsPrimitiveConverter,它提供以下功能:
代码实现:
public class ObjectAsPrimitiveConverter : JsonConverter<object> { // Configure converter settings (float format, unknown number handling, object format) ... public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options) { // Handle custom serialization if needed } public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { // Handle custom deserialization based on token type } }
配置和用法:
要使用自定义转换器,请使用 ObjectAsPrimitiveConverter 配置 JsonSerializerOptions 并指定所需的设置:
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter() }, WriteIndented = true, }; // Deserialize to object or dynamic dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
注释:
以上是如何使用 System.Text.Json 将嵌套 JSON 反序列化为具有正确 C# 类型的嵌套对象字典?的详细内容。更多信息请关注PHP中文网其他相关文章!