Come decodificare una stringa JSON usando C #?

Sto cercando un codice di esempio / lib per decodificare una stringa JSON usando C #.

per decodificare posso farlo:

var data = new Dictionary(); data.Add("..", "..."); var json_encoded = new JavaScriptSerializer().Serialize(data); 

ma per decodificare, come faccio?

 var json_decoded = ?? 

Grazie!

Puoi farlo:

 var data = new Dictionary(); data.Add("foo", "baa"); JavaScriptSerializer ser = new JavaScriptSerializer(); var JSONString = ser.Serialize(data); //JSON encoded var JSONObj = ser.Deserialize>(JSONString); //JSON decoded Console.Write(JSONObj["foo"]); //prints: baa 

Ciò richiederà JSON e lo convertirà in una class fortemente tipizzata di cui si specifica (T)

 public static T Deserialize(string json) { var obj = Activator.CreateInstance(); using(var ms = new MemoryStream(Encoding.Unicode.GetBytes(json))) { var serializer = new DataContractJsonSerializer(obj.GetType()); obj = (T) serializer.ReadObject(ms); return obj; } } 

Questo prenderà una class e la serializzerà come JSON

  public static string Serialize(T obj) { var serializer = new DataContractJsonSerializer(obj.GetType()); using (var ms = new MemoryStream()) { serializer.WriteObject(ms, obj); return Encoding.Default.GetString(ms.ToArray()); } } 

Nota: nel primo esempio sarà necessario disporre di una class di supporto per specificare il tipo T Quindi se hai detto che T è di tipo User dovresti averlo specificato da qualche parte:

 public class User { public string Username { get; set; } public string Firstname { get; set; } }