Deserializing variable Tapez le tableau JSON à l'aide de DataContractJsonSerializer
Question
J'ai une chaîne JSON sous cette forme:
string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
J'essaie de désérialiser le JSON à l'aide du désérialiseur C # .NET DataContractJsonSerializer avec l'extrait de code suivant
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);
Comme le tableau JSON est un tableau de types de variables, je ne sais pas quel type d'objet X devrait être
Si ma chaîne était
jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Je pourrais utiliser ceci:
X = List<List<String>>
et cela fonctionnerait pour moi. Je me demandais s'il y avait un moyen de désérialiser un tableau JSON de type variable?
La solution
Vous pouvez utiliser Json.NET pour le faire.
JArray a = JArray.Parse(jsonStr);
Le JArray contiendrait soit des chaînes, soit des JArray imbriqués, selon le JSON.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow