使用正確的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 } }程式碼實作:
程式碼實作:
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter() }, WriteIndented = true, }; // Deserialize to object or dynamic dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);設定與用法:
若要使用自訂轉換器,請使用
ObjectAsPrimitiveConverter以上是如何使用 System.Text.Json 將巢狀 JSON 反序列化為具有正確 C# 類型的巢狀物件字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!