我使用DataContractJsonSerializer来反序列化Dropbox Core API的/delta响应。响应如下:
{
"entries": [
[
"/foo.dbf",
{
"bytes": 226822,
"client_mtime": "Thu, 26 Sep 2013 23:21:50 +0000",
...
}
],
[
"bar.dbf",
{
"bytes": 147,
"client_mtime": "Thu, 26 Sep 2013 23:21:49 +0000",
...
}
],
...
]
}
我认为问题在于嵌套的方括号。最内层的方括号包含一个由字符串和对象组成的数组。我不确定如何在我的C#类中表示它。
我尝试将“entries”表示为:
[DataContract]
public class Delta
{
[DataMember(Name="entries")]
public DeltaInfo[] Entries { get; internal set; }
}
“DeltaInfo”可以理解为:
[DataContract]
public class DeltaInfo
{
[DataMember]
public string Path { get; internal set; }
[DataMember]
public PathInfo MetaData { get; internal set; }
}
尽管我在Entries数组中得到了预期数量的DeltaInfo对象,但是所有DeltaInfo对象中的Path和MetaData都为null。
我认为我的问题在于“entries”实际上并不包含DeltaInfo对象的数组,而是包含一个包含路径和元数据的数组的数组,我不确定如何在我的代码中表示它。