質問は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