簡體   English   中英

繼承字典的Serialize類不是序列化屬性

[英]Serialize class that inherits dictionary is not serializing properties

我有一個繼承自Dictionary的類,並且有一些屬性。 當我序列化它時,只序列化字典而不是屬性。 如果我有一個包含屬性的有效負載,它會對它們進行反序列化。 如何使其序列化我的對象,包括屬性?

public class Maintenance : Dictionary<string, dynamic>
{
    public int PersonId { get; set; }
}

return JsonConvert.DeserializeObject<T>(jsonString); //Populates PersonId and all other properties end up in the dictionary.
return JsonConvert.SerializeObject(maintenance); //Only returns dictionary contents

我很欣賞有關如何使序列化使用與反序列化似乎使用相同的行為的建議。

來自Json.Net文檔:“請注意,序列化時只會將字典名稱/值寫入JSON對象,並且在反序列化時,JSON對象的屬性將添加到字典的名稱/值中。在.NET字典上的其他成員在序列化期間被忽略。“

取自以下鏈接: http//www.newtonsoft.com/json/help/html/SerializationGuide.htm

假設您希望字典的鍵和值與json輸出中的PersonId在同一層次結構級別上,您可以使用帶有組合而不是繼承的JsonExtensionData屬性,如下所示:

public class Maintenance
{
    public int PersonId { get; set; }

    [JsonExtensionData]
    public Dictionary<string, dynamic> ThisNameWillNotBeInTheJson { get; set; }
}

另請看這個問題: 如何使用Json.Net將Dictionary序列化為其父對象的一部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM