将json字典反序列化为c#

将json字典反序列化为c#,c#,json,deserialization,C#,Json,Deserialization,我从一个API获取这个json string json = "{'serviceSession':{ '123123123':[{'apn':'abc'},{'apn':'bcd'},{'apn':'def'}]}}"; 当我试图用 public class ServiceSession { public Dictionary<string, List<ServiceSessionType>> ServiceSessions { get; set; } } p

我从一个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; }
}
公共类服务会话
{
公共字典服务会话{get;set;}
}
公共类ServiceSessionType
{
公共字符串Apn{get;set;}
}

var test=JsonConvert.DeserializeObject(json);
我越来越空了

怎么了?有什么想法吗


提前谢谢你

数据结构和json字符串之间存在不匹配。您需要更改:

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

如果无法更改类或名称是C#中的关键字,则这是有意义的。

数据结构和json字符串之间存在不匹配。您需要更改:

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

如果无法更改类或名称是C#中的关键字,则这是有意义的。

C#数据结构与json数据结构不匹配。要么更改json的组成方式,要么更改c#中的类结构。您的模型与json不匹配
123123
是对象数组,而不是字典。即使它是一本字典(最确切地说它不是),它仍然会爆炸,因为你会有重复的键。
ServiceSessions
serviceSession
@SamAxe
123123123
是字典中的键:)@zaitsman:噢,伙计。我完全误解了这一点:)谢谢。c#数据结构与json数据结构不匹配。要么更改json的组成方式,要么更改c#中的类结构。您的模型与json不匹配
123123
是对象数组,而不是字典。即使它是一本字典(最确切地说它不是),它仍然会爆炸,因为你会有重复的键。
ServiceSessions
serviceSession
@SamAxe
123123123
是字典中的键:)@zaitsman:噢,伙计。我完全误读了那句话,不是吗:)谢谢。
[System.Runtime.Serialization.DataContract]
public class ServiceSession
{         
    [System.Runtime.Serialization.DataMember(Name = "serviceSession")]
    public Dictionary<string, List<ServiceSessionType>> ServiceSessions { get; set; }
}