添加System.runtime.serialization.dll引用
public static class JsonSerializer { private static ITracing _tracing = TracingManager.GetTracing(typeof(JsonSerializer)); /// <summary> /// 将指定对象序列化为 JavaScript 对象表示法 (JSON) 数据,并将生成的 JSON 写入流中。 /// </summary> /// 对象类型 /// 流对象 /// 序列化对象 public static void Serialize(Stream stream, T obj) { JsonSerializeProxy.Default.Serialize(stream, obj); } /// <summary> /// 将指定对象序列化为 JavaScript 对象表示法 (JSON) 数据,并返回对应的字符串。 /// </summary> /// 对象类型 /// 序列化对象 /// JavaScript 对象表示法 (JSON) 字符串 public static string Serialize(T obj) { using (MemoryStream ms = new MemoryStream()) { JsonSerializeProxy.Default.Serialize(ms, obj); string jsonStr = Encoding.UTF8.GetString(ms.ToArray()); _tracing.InfoFmt("{0} json serialize result: {1}", typeof(T).ToString(), jsonStr); return jsonStr; } } public static T DeSerialize(string jsonStr) { return JsonSerializeProxy.Default.DeSerialize(jsonStr); } } public class JsonSerializeProxy { private static readonly JsonSerializeProxy _default = new JsonSerializeProxy(); private DataContractJsonSerializer _serializer; public static JsonSerializeProxy Default { get { return _default; } } private JsonSerializeProxy() { _serializer = new DataContractJsonSerializer(typeof(T)); } public void Serialize(Stream stream, T obj) { _serializer.WriteObject(stream, obj); } /// <summary> /// 将JSON字符串反序列化为对象 /// </summary> /// json字符串 /// public T DeSerialize(string jsonStr) { MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonStr)); T obj = (T)_serializer.ReadObject(ms); <strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong> return obj; } }