using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
using System.Reflection;
using System.Data;
namespace Business.Util
{
public class JsonHelper
{
public static T ConvertToEntity<T>(string sJson)
{
if (string.IsNullOrEmpty(sJson))
{
throw new Exception("转换的JSON数据不能为空");
}
JavaScriptSerializer js = new JavaScriptSerializer();
var objDic = js.Deserialize<T>(sJson);
return objDic;
}
///<summary>
///将DataTable转换成Json
///</summary>
///<param name="jsonName"></param>
///<param name="dt"></param>
///<returns></returns>
public static string DataTableToJson(string jsonName, DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
return "";
}
else
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
Json.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Json.Append("\"" +
dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
if (j < dt.Columns.Count - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < dt.Rows.Count - 1)
{
Json.Append(",");
}
}
Json.Append("]}");
return Json.ToString();
}
}
///<summary>
///将泛型IList转换成Json
///</summary>
///<typeparam name="T"></typeparam>
///<param name="jsonName"></param>
///<param name="IL"></param>
///<returns></returns>
public static string ObjectToJson<T>(string jsonName, IList<T> IL)
{
StringBuilder Json = new StringBuilder();
Json.Append("{\"" + jsonName + "\":[");
if (IL.Count > 0)
{
for (int i = 0; i < IL.Count; i++)
{
T obj = Activator.CreateInstance<T>();
Type type = obj.GetType();
PropertyInfo[] pis = type.GetProperties();
Json.Append("{");
for (int j = 0; j < pis.Length; j++)
{
Json.Append("\"" + pis[j].Name.ToString()
+ "\":\"" +
pis[j].GetValue(IL[i], null) + "\"");
if (j < pis.Length - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < IL.Count - 1)
{
Json.Append(",");
}
}
}
Json.Append("]}");
return Json.ToString();
}
}
}
转载于:https://www.cnblogs.com/dashi/archive/2013/05/18/4034652.html