La question est similaire à Deserializing JSON with unknown fields, mais je voudrais utiliser le construit dans DataContractJsonSerializer à la place.Désérialisation d'un objet JSON avec des champs inconnus
J'ai des données JSON comme ça:
{
"known1": "foo",
"known2": "bar",
"more":{ "unknown12345": { "text": "foo", "label": "bar"},
"unknown67890": { "text": "foo","label":"bar"}
}
}
Je pensais que je peux faire la DataContract comme ça:
[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; }
Et le TwoStringMembersClass est ceci:
[DataContract(Name = "TwoStringMembersClass ")]
public class TwoStringMembersClass
{
[DataMember(Name = "text")]
public string Text { get; set; }
[DataMember(Name = "label")]
public string Label { get; set; }
}
Mais ce qui semble fonctionner dans JSON.Net ne semble pas fonctionner aussi facilement avec l'analyseur JSON natif. En ReadObject() j'obtiens une ArgumentException, probablement à cause du Dictionary.
Une idée quelle est la meilleure solution comment faire ce travail?
Merci d'avance.
Pouvez-vous publier la définition de TwoStringMembersClass. Vous pouvez également voir si cela fonctionne avec Dictionary. –
calum
@calum TwoStringMembersClass est maintenant fourni .... aussi Dictionary jette la même exception :-( –
Marco