[Serializable] public class Person { private int id; public int Id { get { return id; } set { id = value; } } private string name; public string Name { get { return name; } set { name = value; } } }Person p1 = new Person(); p1.Id = 1; p1.Name = "a"; Person p2 = new Person(); p2.Id = 2; p2.Name = "b";List<Person> listperson = new List<Person>(); listperson.Add(p1); listperson.Add(p2);
1、使用System.Web.Script.Serialization序列化
(1)将对象listperson 转成json格式字符串
JavaScriptSerializer js = new JavaScriptSerializer(); //json序列化 string s = js.Serialize(listperson); (2)将json 格式字符串“strJson”转成C#对象 JavaScriptSerializer js = new JavaScriptSerializer(); List<Person> list=js.Deserialize<List<Person>>(strJson)2、直接将DataTable转换成json字符串
/// <summary>
/// 将DataTable中的数据转换成json格式
/// </summary>
/// <param name="dt">DataTable</param>
/// <returns>json数据</returns>
public static string GetJSON(DataTable dt)
{
StringBuilder sb = new StringBuilder();
sb.Append("{\"totalCount\":" + dt.Rows.Count + ",\"data\":");
sb.Append("[");
try
{
if (dt.Rows.Count > 0)
{
Hashtable ht = new Hashtable();
for (int i = 0; i < dt.Columns.Count; i++)
{
ht.Add(i, dt.Columns[i].ColumnName);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
sb.Append(string.Format("\"{0}\":\"{1}\",",
ht[j], dt.Rows[i][j].ToString().Trim()));
}
sb.Remove(sb.ToString().LastIndexOf(","), 1);
sb.Append("},");
}
sb.Remove(sb.ToString().LastIndexOf(","), 1);
ht.Clear();
ht = null;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
sb.Append("]}");
}
return sb.ToString();
}