首頁 >後端開發 >C++ >如何將巢狀 JSON 反序列化為類型化 C# 物件?

如何將巢狀 JSON 反序列化為類型化 C# 物件?

Susan Sarandon
Susan Sarandon原創
2024-12-25 12:11:09439瀏覽

How Can I Deserialize Nested JSON into Typed C# Objects?

使用型別C# 物件進行巢狀JSON 反序列化

將巢狀JSON 反序列化為平面字典

將巢狀JSON 反序列化為平面字典在C# 中使用System.Text.Json 可能會導致大多數屬性變成JsonElement 類型。若要基於 JSON 屬性類型實作更具體的 C# 類型,需要自訂 JsonConverter。

ObjectAsPrimitiveConverter

以下程式碼提供了一個名為 ObjectAsPrimitiveConverter 的自訂 JsonConverter:

轉換器配置

要配置轉換器,請指定所需的FloatFormat(雙精確度或十進位)、UnknownNumberFormat(錯誤或JsonElement)和ObjectFormat(Expando 或ObjectFormat(Expando 或ObjectFormat(Expando 或ObjectFormat(Expando 或ObjectFormat(Expando Dictionary):

反序列化為物件

要將巢狀 JSON 反序列化為物件(如果使用ExpandoObject,則為動態),請使用:

自訂

可以自訂轉換器以支援不同的數字類型和物件格式。此外,它還可以擴展以更優雅地處理不支援的 JSON 數字。

結論

透過實作自訂JsonConverter,您可以實現嵌套JSON 物件的特定於類型的反序列化轉換為分層資料結構,每個屬性都有適當的C# 型。

以上是如何將巢狀 JSON 反序列化為類型化 C# 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn