Deserializzazione dell'array JSON di tipo variabile utilizzando DataContractJsonSerializer
Domanda
Ho una stringa JSON in questo modulo:
string jsonStr = "[\"A\", [\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Sto cercando di deserializzare JSON usando il deserializzatore C # .NET DataContractJsonSerializer con il seguente frammento di codice
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof<X>);
X data = (X)serializer.ReadObject(ms);
Ora poiché l'array JSON è un array di tipi variabili non so quale tipo di oggetto X dovrebbe essere
Se la mia stringa fosse
jsonStr = "[[\"Martini\", \"alovell\"],[\"Martin\", \"lovell\"]]"
Potrei usare questo:
X = List<List<String>>
e questo avrebbe funzionato per me. Mi chiedevo se esiste un modo per deserializzare l'array JSON di tipo variabile?
Soluzione
Puoi usare Json.NET per farlo.
JArray a = JArray.Parse(jsonStr);
JArray conterrà stringhe o JArray nidificati a seconda di JSON.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow