首頁 > 後端開發 > C++ > 如何在 JSON.NET 中反序列化 JSON 介面級屬性?

如何在 JSON.NET 中反序列化 JSON 介面級屬性?

Barbara Streisand
發布: 2025-01-18 16:06:11
原創
870 人瀏覽過

How Can I Deserialize JSON Interface-Level Properties in JSON.NET?

JSON.NET 反序列化與介面屬性:實用的解決方案

使用 JSON.NET 將 JSON 資料反序列化為 C# 物件在處理介面類型的屬性時可能會遇到困難。 常見錯誤:JSON.NET 無法直接實例化介面。

解決方案在於利用類別的建構子中的具體類別參數。 這會在反序列化期間引導 JSON.NET 找到正確的特定類別。

這是一個例子:

<code class="language-csharp">public class Visit : IVisit
{
    // Constructor crucial for JSON.NET to identify concrete types for deserialization.
    public Visit(MyLocation location, Guest guest)
    {
        Location = location;
        Guest = guest;
    }

    public long VisitId { get; set; }
    public ILocation Location { get; set; }
    public DateTime VisitDate { get; set; }
    public IGuest Guest { get; set; }
}</code>
登入後複製

透過在建構函數中包含MyLocationGuest(分別實作ILocationIGuest 的具體類別),JSON.NET 可以成功地將JSON 資料對應到適當的類型,從而克服介面實例化問題。 這種方法可以讓您保留介面的彈性,同時確保反序列化的順利進行。

以上是如何在 JSON.NET 中反序列化 JSON 介面級屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板