我有一个类似于以下内容的 JSON 节点。
"folders":[
{"Videos":[1196717,2874999,898084]},
{"Fun":[2443301,3671]},
{"News":[62689,58867,11385]}
]
我想将其反序列化为 aDictionary<string, List<int>>
或类似的东西。我目前有会员:
[DataMember(Name = "folders")]
public Dictionary<string, List<int>> Folders;
我希望输出如下:
Folders = new Dictionary<string, List<int>>() {
{"Videos", new List<int>() { 1196717, 2874999, 898084 }},
{"Fun", new List<int>() { 2443301, 3671 }},
{"News", new List<int>() { 62689, 58867, 11385 }}
};
我已经将反序列化器实现为:
var serializer = new DataContractJsonSerializer(
typeof(T),
new DataContractJsonSerializerSettings() {
DateTimeFormat = new DateTimeFormat("yyyy-MM-ddTHH:mm:ss.fffffffZ"),
}
);
T result = (T)serializer.ReadObject(response);
但只是产生错误:
数据合约类型'System.Runtime.Serialization.KeyValue`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Collections.Generic.List`1[[System .Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' 因为需要的数据成员'Key,未找到值'。
我理解这是因为它期待更像这样的东西,但格式超出了我的控制。
"folders":[
{
"key":"Videos",
"value":[1196717,2874999,898084]
},{
"key":"Fun",
"value":[2443301,3671]
},{
"key":"News",
"value":[62689,58867,11385]
}
]
我能做些什么来反序列化这个?