Deserializzazione dell'array JSON di tipo variabile utilizzando DataContractJsonSerializer

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

  •  06-07-2019
  •  | 
  •  

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?

È stato utile?

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