Deserializing variable Tapez le tableau JSON à l'aide de DataContractJsonSerializer

StackOverflow https://stackoverflow.com/questions/1215479

  •  06-07-2019
  •  | 
  •  

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?

Était-ce utile?

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
scroll top