如何使用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; } }