DataContractJsonSerializer返回null .Net4.0

时间:2013-08-22 21:30:21

标签: 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 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;
        }

我不知道如何处理json字符串,它似乎是一个数组,但没有命名。我尝试过使用SSheets DataContract并使用SSCollection,两者都返回空值,除非我使用SSheets,我得到一个0表示id,null表示字符串名和accessLevel。任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

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

相关问题