首頁 > 後端開發 > C++ > 使用 Json.Net 序列化時如何保留字典鍵?

使用 Json.Net 序列化時如何保留字典鍵?

Linda Hamilton
發布: 2025-01-17 11:06:14
原創
833 人瀏覽過

How Can I Preserve Dictionary Keys When Serializing with Json.Net?

Json.Net序列化中保留字典鍵的方法

Json.Net是常用的序列化函式庫,但在序列化包含字典的物件時,可能會遇到如何保留字典鍵的問題。

讓我們來看一個例子:

<code class="language-c#">public class Test
{
    public string X { get; set; }
    public Dictionary<string, string> Y { get; set; }
}</code>
登入後複製

假設希望將此物件序列化成如下JSON格式:

<code class="language-json">{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>
登入後複製

這裡,字典的鍵("key1"和"key2")應該明確包含在JSON輸出中。

利用JsonExtensionData屬性保留字典

如果使用Json.Net 5.0.5或更高版本,有一個簡單的解決方案。透過使用[JsonExtensionData]屬性,可以將字典提升為父物件序列化表示的一部分。只要將屬性套用到字典屬性:

<code class="language-c#">public class Test
{
    public string X { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}</code>
登入後複製

透過此調整,字典的鍵值對將無縫整合到父物件的JSON表示中。此外,此機制雙向工作,允許將不直接對應到類別成員的其他JSON屬性反序列化到字典中。

以上是使用 Json.Net 序列化時如何保留字典鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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