首頁 >後端開發 >C++ >我如何將具有數字ID作為密鑰的JSON對象進行重新序列化,為強鍵入C#對象?

我如何將具有數字ID作為密鑰的JSON對象進行重新序列化,為強鍵入C#對象?

Susan Sarandon
Susan Sarandon原創
2025-01-30 00:12:09598瀏覽

How Can I Deserialize a JSON Object with Numeric IDs as Keys into a Strongly Typed C# Object?

將具有 ID 作為名稱的 JSON 對象轉換為強類型 C# 對象

當將具有數字 ID 鍵的 JSON 對象反序列化為強類型 C# 對象時,會遇到挑戰。考慮以下 JSON 響應:

<code>{
    "5234592":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    },
    "5235291":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    }
}</code>

為了創建強類型對象,您已定義了表示“PollsAndSurveysStatistics”、“AttendanceStatistics”和“SessionPerformanceStats”實體的類。但是,問題在於您的 C# 對象“WebinarPerformanceStats”的頂級結構。

為了解決這個問題,請在 C# 中將根對象轉換為字典:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

這種方法允許 Json.NET 將 JSON 對象反序列化為字典,其中 ID 數字作為鍵。為了確保正確的類型處理,您可以按如下方式細化聲明:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

此修改確保 ID 鍵被解釋為長整數。通過使用字典作為根對象,您可以使用 ID 鍵訪問會話性能統計信息。

以上是我如何將具有數字ID作為密鑰的JSON對象進行重新序列化,為強鍵入C#對象?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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