这里会用到一个命名空间
System.Runtime.Serialization.Json,杯具的孩子会发现,在添加引用里根本找不到此命名空间,找到的是System.Runtime.Serialization,添加引用后,根本不管用,此命名空间里根本不包括序列化要用到的对象DataContractJsonSerializer,那,这个对象到底在哪里呢。。。。
经过不断的查终于找到了,这个坑爹的货藏的很深呀。正确的是直接添加这个引用 System.Servicemodel.Web就把问题解决了。
顺便奉上序列化和反序列化JSON的一个类:
using System.IO; using System.Text; using System.Runtime.Serialization.Json; namespace Test { /// <summary> /// JSON帮助类 /// </summary> public class JSONHelper { //序列化 //对象转化为Json字符串 public static string Serialize(object objectToSerialize) { using (MemoryStream ms = new MemoryStream()) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(objectToSerialize.GetType()); serializer.WriteObject(ms, objectToSerialize); ms.Position = 0; using (StreamReader reader = new StreamReader(ms)) { return reader.ReadToEnd(); } } } //反序列化 //Json字符串转化为对象 public static T Deserialize<T>(string jsonString) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); return (T)serializer.ReadObject(ms); } } } }