首頁 >後端開發 >C++ >如何使用 JsonConvert.DeserializeObject 將 JSON 正確反序列化為 C# POCO 類別?

如何使用 JsonConvert.DeserializeObject 將 JSON 正確反序列化為 C# POCO 類別?

Susan Sarandon
Susan Sarandon原創
2025-01-15 11:17:48478瀏覽

How to Properly Deserialize JSON to a C# POCO Class Using JsonConvert.DeserializeObject?

使用JsonConvert.DeserializeObject將JSON反序列化到C# POCO類別

問題:

嘗試使用JsonConvert.DeserializeObject將JSON資料反序列化到C# POCO類別時,由於特定屬性的反序列化不正確,會引發異常。

解答:

為了使用JsonConvert.DeserializeObject正確地將JSON反序列化到POCO類,務必確保類別中的屬性名稱與JSON資料中的屬性名稱相符。此外,可能還需要以下步驟:

  1. 使用JsonProperty屬性: 利用JsonProperty屬性指定與特定類別屬性對應的JSON屬性名稱。當JSON屬性名稱與類別屬性名稱不同時,這尤其有用。
  2. 考慮屬性類型: 驗證POCO類別中每個屬性的資料類型是否與JSON資料中的預期類型一致。例如,如果JSON資料包含數組,則POCO類別中相應的屬性應聲明為清單。

範例:

考慮以下範例,其中User類別中的Accounts屬性需要從JSON物件反序列化:

<code class="language-csharp">public class User
{
    [JsonProperty("accounts")]
    public Account Accounts { get; set; }

    // 其他User属性此处省略,以简洁起见
}

public class Account
{
    public string github { get; set; }
}</code>

透過使用JsonProperty屬性並將Accounts屬性宣告為特定的Account對象,反序列化將正確處理該屬性的JSON物件。

以上是如何使用 JsonConvert.DeserializeObject 將 JSON 正確反序列化為 C# POCO 類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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