必须的是 .netframewoke 4.0的项目才能使用。
1.项目添加System.Runtime.Serialization引用。
2.JsonHelper通用类的代码如下:
using System;
using System.Text;
//--------------------------using
using System.Runtime.Serialization.Json; // 添加引用(.Net 4.0) System.Runtime.Serialization
/// <summary>
/// JSON辅助类 字符<==>对象(注意:字符里属性的大小写与对象的属性大小写必须保持一致)
/// </summary>
public class JsonHelper
{
#region 对象类型转换为json 字符
/// <summary>
/// 对象类型转换为json 字符
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="jsonObject">待转换实体</param>
/// <param name="encoding">编码格式</param>
/// <returns>string</returns>
public static string ObjectToJson<T>(Object jsonObject, Encoding encoding)
{
string result = String.Empty;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
serializer.WriteObject(ms, jsonObject);
result = encoding.GetString(ms.ToArray());
}
return result;
}
#endregion
#region json字符转换为对象
/// <summary>
/// json字符转换为对象
/// </summary>
/// <typeparam name="T">实体类型</typeparam>
/// <param name="json">json字符串</param>
/// <param name="encoding">编码格式</param>
/// <returns>T</returns>
public static T JsonToObject<T>(string json, Encoding encoding)
{
T resultObject = Activator.CreateInstance<T>();
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(encoding.GetBytes(json)))
{
resultObject = (T)serializer.ReadObject(ms);
}
return resultObject;
}
#endregion
}
需要注意的是,字符里属性的大小写与对象的属性大小写,必须保持一致,才不会出现问题!