簡體   English   中英

將JSON字典反序列化為C#

[英]Deserialize json dictionary to c#

我從API獲取此json。

string json = "{'serviceSession':{ '123123123':[{'apn':'abc'},{'apn':'bcd'},{'apn':'def'}]}}";

當我嘗試將其反序列化時

public class ServiceSession
{
    public Dictionary<string, List<ServiceSessionType>> ServiceSessions { get; set; }
}

public class ServiceSessionType
{
    public string Apn { get; set; }
}

var test = JsonConvert.DeserializeObject<ServiceSession> (json);

我越來越空了。

怎么了? 有任何想法嗎?

先感謝您!!

數據結構和json字符串不匹配。 您需要更改:

public class ServiceSession
{
    //ServiceSessions replaced by serviceSession 
    public Dictionary<string, List<ServiceSessionType>> serviceSession { get; set; }
}

另一種解決方案是添加一個DataMember屬性,該屬性告知解串器名稱。

[System.Runtime.Serialization.DataContract]
public class ServiceSession
{         
    [System.Runtime.Serialization.DataMember(Name = "serviceSession")]
    public Dictionary<string, List<ServiceSessionType>> ServiceSessions { get; set; }
}

如果您不能更改類或名稱是C#中的關鍵字,則這很有意義。

暫無
暫無

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

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