C# DataContractJsonSerializer返回null.Net4.0

C# DataContractJsonSerializer返回null.Net4.0,c#,json,datacontract,jsonserializer,C#,Json,Datacontract,Jsonserializer,这是我需要反序列化的json字符串: [{"id":5236083584722820,"name":"IT_Projects","accessLevel":"EDITOR"}, {"id":2034305724639108,"name":"IT_Task","accessLevel":"EDITOR"}, {"id":2249810003683204,"name":"On-Hold","accessLevel":"EDITOR"}] 代码如下: [DataContract] public cl

这是我需要反序列化的json字符串:

[{"id":5236083584722820,"name":"IT_Projects","accessLevel":"EDITOR"},
{"id":2034305724639108,"name":"IT_Task","accessLevel":"EDITOR"},
{"id":2249810003683204,"name":"On-Hold","accessLevel":"EDITOR"}]
代码如下:

[DataContract]
public class SSCollection
{    
    [DataMember]
    public List<SSheets> sheetObjects { get; set; }
} 
[DataContract]
public class SSheets 
{
    [DataMember]
    public Int64 id { get; set; }
    [DataMember]
    public string name { get; set; }
    [DataMember]
    public string accessLevel { get; set;}
}

using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(json)))
        {
            memoryStream.Position = 0;
            var serializer = new DataContractJsonSerializer(typeof(SSCollection));
            SSCollection ss = (SSCollection)serializer.ReadObject(memoryStream);                 
            return ss;
        }
[DataContract]
公共类集合
{    
[数据成员]
公共列表sheetObjects{get;set;}
} 
[数据合同]
公开课成绩表
{
[数据成员]
公共Int64 id{get;set;}
[数据成员]
公共字符串名称{get;set;}
[数据成员]
公共字符串访问级别{get;set;}
}
使用(var memoryStream=newmemorystream(Encoding.UTF8.GetBytes(json)))
{
memoryStream.Position=0;
var serializer=newdatacontractjsonserializer(typeof(SSCollection));
sCollection ss=(sCollection)serializer.ReadObject(memoryStream);
返回ss;
}

我不确定如何处理json字符串,它似乎是一个数组,但没有命名。我尝试过使用SSheets DataContract和SSCollection,这两种方法都返回空值,除非我使用SSheets,否则id为0,字符串name和accessLevel为空。任何帮助都将不胜感激。谢谢。

在阅读了关于这个主题的许多其他问题并阅读了他们关于使用Json.Net的建议后,我决定使用Newtonsoft.Json。第一次尝试就成功了。Net DataContract不值得这么麻烦。谢谢你的帮助