该问题类似于Deserializing JSON with unknown fields,但我想使用内置的DataContractJsonSerializer代替。反序列化具有未知字段的JSON对象
所以我JSON数据这样的:
{
"known1": "foo",
"known2": "bar",
"more":{ "unknown12345": { "text": "foo", "label": "bar"},
"unknown67890": { "text": "foo","label":"bar"}
}
}
我想我能做到这样的datacontract:
[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,可能是因为字典。
任何想法如何使这项工作最好的解决方案是什么?
在此先感谢。
你可以发布TwoStringMembersClass的定义。您可能还想查看它是否可以与Dictionary一起使用。 –
calum
@calum现在提供了TwoStringMembersClass ....还有Dictionary引发了相同的异常:-( –
Marco