0

这是我需要反序列化的 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 和空值表示字符串名称和 accessLevel。任何帮助将不胜感激。谢谢。

4

1 回答 1

0

在阅读了有关此主题的许多其他问题并阅读了他们对使用 Json.Net 的建议之后,我决定使用 Newtonsoft.Json。它在第一次尝试时起作用。.Net DataContract 只是不值得麻烦。谢谢你的帮助。

于 2013-08-23T15:57:30.180 回答