Cómo decodificar una cadena JSON usando C #?

Estoy buscando un código de ejemplo / lib para decodificar una cadena JSON usando C #.

para decodificar puedo hacer esto:

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

pero para decodificar, ¿Cómo lo hago?

 var json_decoded = ?? 

¡Gracias!

Puedes hacerlo:

 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 

Esto tomará JSON y lo convertirá en una clase fuertemente tipada de la que especifique (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; } } 

Esto tomará una clase y lo serializará como 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: en el primer ejemplo, deberá tener una clase de respaldo para especificar qué tipo es T Entonces, si le dices que T es de tipo User , necesitarías tener esto especificado en alguna parte:

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