這里會用到一個命名空間
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);
}
}
}
}
