簡體   English   中英

使用json,net將對象序列化為字典

[英]Serializing object to dictionary with json,net

json.net可以將類對象序列化為簡單的字典嗎?

public class CommitData
{
    public AddressDTO Property { get; set; }

    public DateTime? Appointment { get; set; }

    public DateTime? Closed { get; set; }

    public DateTime? Created { get; set; }

    public string LenderRef { get; set; }

    public string YearBuilt { get; set; }

    public IDictionary<string, object> Custom { get; set; }
 }

public class AddressDTO
{
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string Address3 { get; set; }
    public string Town { get; set; }
    public string County { get; set; }
    public string Postcode { get; set; }
}

序列化時,我想得到:

{
"Property.Address1": "",
"Property.Address2": "uyg",
"LenderRef": "yguyg",
"Closed": date_here }

並類似地將上述json字符串反序列化為CommitData對象?

是的,但這有點工作。 通過實現自己的JsonConverter您可以完全控制對象的序列化和反序列化JsonConverter 這樣,您可以通過簡單的字符串操作來對其進行展平和取消展平。 適當的通用解決方案可以完成,但是會花費更多的工作,因為您需要考慮每個屬性的多個遞歸級別,但是如果您只關心這種情況,則可以使用Custom JsonConverter

這是Json.net在內部使用的轉換器的示例:

KeyValuePairConverter.cs

希望能幫助到你。

暫無
暫無

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

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