如何使用C#解码JSON字符串?

我正在寻找一个示例代码/ lib来使用C#解码JSON字符串。

解码我可以这样做:

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

但要解码,我该怎么办?

 var json_decoded = ?? 

谢谢!

你可以这样做:

 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 

这将采用JSON并将其转换为您指定的强类型类(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; } } 

这将采用一个类并将其序列化为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()); } } 

注意:在第一个示例中,您需要有一个支持类来指定T是什么类型。 因此,如果您告诉它T是User类型,您需要在某处指定:

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