这个问题类似于用未知字段反序列化 JSON,但我想改用内置的 DataContractJsonSerializer。
所以我有这样的JSON数据:
{
"known1": "foo",
"known2": "bar",
"more":{ "unknown12345": { "text": "foo", "label": "bar"},
"unknown67890": { "text": "foo","label":"bar"}
}
}
我以为我可以像这样执行数据合同:
[DataMember(Name = "known1")]
public string K1 { get; set; }
[DataMember(Name = "known2")]
public string K2 { get; set; }
[DataMember(Name = "more")]
public Dictionary<string,TwoStringMembersClass> More { get; set; }
而 TwoStringMembersClass 就是这样:
[DataContract(Name = "TwoStringMembersClass ")]
public class TwoStringMembersClass
{
[DataMember(Name = "text")]
public string Text { get; set; }
[DataMember(Name = "label")]
public string Label { get; set; }
}
但是似乎在 JSON.Net 中有效的方法似乎不适用于本机 JSON 解析器。在 ReadObject() 中,我得到一个 ArgumentException,可能是因为字典。
知道如何使这项工作的最佳解决方案是什么?
提前致谢。