#region List转换成Json

/// <summary>

/// List转换成Json

/// </summary>

public static string ListToJson<T>(IList<T> list)

{

object obj = list[0];

return ListToJson<T>(list, obj.GetType().Name);

}

/// <summary>

/// List转换成Json

/// </summary>

public static string ListToJson<T>(IList<T> list, string jsonName)

{

StringBuilder Json = new StringBuilder();

if (string.IsNullOrEmpty(jsonName)) jsonName = list[0].GetType().Name;

Json.Append("{\"" + jsonName + "\":[");

if (list.Count > 0)

{

for (int i = 0; i < list.Count; i++)

{

T obj = Activator.CreateInstance<T>();

PropertyInfo[] pi = obj.GetType().GetProperties();

Json.Append("{");

for (int j = 0; j < pi.Length; j++)

{

Type type = pi[j].GetValue(list[i], null).GetType();

Json.Append("\"" + pi[j].Name.ToString() + "\":" + StringFormat(pi[j].GetValue(list[i], null).ToString(), type));

if (j < pi.Length - 1)

{

Json.Append(",");

}

}

Json.Append("}");

if (i < list.Count - 1)

{

Json.Append(",");

}

}

}

Json.Append("]}");

return Json.ToString();

}

#endregion

#region 对象转换为Json

/// <summary>

/// 对象转换为Json

/// </summary>

/// <param name="jsonObject">对象</param>

/// <returns>Json字符串</returns>

public static string ToJson(object jsonObject)

{

string jsonString = "{";

PropertyInfo[] propertyInfo = jsonObject.GetType().GetProperties();

for (int i = 0; i < propertyInfo.Length; i++)

{

object objectValue = propertyInfo[i].GetGetMethod().Invoke(jsonObject, null);

string value = string.Empty;

if (objectValue is DateTime || objectValue is Guid || objectValue is TimeSpan)

{

value = "'" + objectValue.ToString() + "'";

}

else if (objectValue is string)

{

value = "'" + ToJson(objectValue.ToString()) + "'";

}

else if (objectValue is IEnumerable)

{

value = ToJson((IEnumerable)objectValue);

}

else

{

value = ToJson(objectValue.ToString());

}

jsonString += "\"" + ToJson(propertyInfo[i].Name) + "\":" + value + ",";

}

jsonString.Remove(jsonString.Length - 1, jsonString.Length);

return jsonString + "}";

}

#endregion

#region 对象集合转换Json

/// <summary>

/// 对象集合转换Json

/// </summary>

/// <param name="array">集合对象</param>

/// <returns>Json字符串</returns>

public static string ToJson(IEnumerable array)

{

string jsonString = "[";

foreach (object item in array)

{

jsonString += ToJson(item) + ",";

}

jsonString.Remove(jsonString.Length - 1, jsonString.Length);

return jsonString + "]";

}

#endregion

#region 普通集合转换Json

/// <summary>

/// 普通集合转换Json

/// </summary>

/// <param name="array">集合对象</param>

/// <returns>Json字符串</returns>

public static string ToArrayString(IEnumerable array)

{

string jsonString = "[";

foreach (object item in array)

{

jsonString = ToJson(item.ToString()) + ",";

}

jsonString.Remove(jsonString.Length - 1, jsonString.Length);

return jsonString + "]";

}

#endregion

#region  DataSet转换为Json

/// <summary>

/// DataSet转换为Json

/// </summary>

/// <param name="dataSet">DataSet对象</param>

/// <returns>Json字符串</returns>

public static string ToJson(DataSet dataSet)

{

string jsonString = "{";

foreach (DataTable table in dataSet.Tables)

{

jsonString += "\"" + table.TableName + "\":" + ToJson(table) + ",";

}

jsonString = jsonString.TrimEnd(',');

return jsonString + "}";

}

#endregion

#region Datatable转换为Json

/// <summary>

/// Datatable转换为Json

/// </summary>

/// <param name="table">Datatable对象</param>

/// <returns>Json字符串</returns>

public static string ToJson(DataTable dt)

{

StringBuilder jsonString = new StringBuilder();

jsonString.Append("[");

DataRowCollection drc = dt.Rows;

for (int i = 0; i < drc.Count; i++)

{

jsonString.Append("{");

for (int j = 0; j < dt.Columns.Count; j++)

{

string strKey = dt.Columns[j].ColumnName;

string strValue = drc[i][j].ToString();

Type type = dt.Columns[j].DataType;

jsonString.Append("\"" + strKey + "\":");

strValue = StringFormat(strValue, type);

if (j < dt.Columns.Count - 1)

{

jsonString.Append(strValue + ",");

}

else

{

jsonString.Append(strValue);

}

}

jsonString.Append("},");

}

jsonString.Remove(jsonString.Length - 1, 1);

jsonString.Append("]");

return jsonString.ToString();

}

/// <summary>

/// DataTable转换为Json

/// </summary>

public static string ToJson(DataTable dt, string jsonName)

{

StringBuilder Json = new StringBuilder();

if (string.IsNullOrEmpty(jsonName)) jsonName = dt.TableName;

Json.Append("{\"" + jsonName + "\":[");

if (dt.Rows.Count > 0)

{

for (int i = 0; i < dt.Rows.Count; i++)

{

Json.Append("{");

for (int j = 0; j < dt.Columns.Count; j++)

{

Type type = dt.Rows[i][j].GetType();

Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + StringFormat(dt.Rows[i][j].ToString(), type));

if (j < dt.Columns.Count - 1)

{

Json.Append(",");

}

}

Json.Append("}");

if (i < dt.Rows.Count - 1)

{

Json.Append(",");

}

}

}

Json.Append("]}");

return Json.ToString();

}

#endregion

#region DataReader转换为Json

/// <summary>

/// DataReader转换为Json

/// </summary>

/// <param name="dataReader">DataReader对象</param>

/// <returns>Json字符串</returns>

public static string ToJson(DbDataReader dataReader)

{

StringBuilder jsonString = new StringBuilder();

jsonString.Append("[");

while (dataReader.Read())

{

jsonString.Append("{");

for (int i = 0; i < dataReader.FieldCount; i++)

{

Type type = dataReader.GetFieldType(i);

string strKey = dataReader.GetName(i);

string strValue = dataReader[i].ToString();

jsonString.Append("\"" + strKey + "\":");

strValue = StringFormat(strValue, type);

if (i < dataReader.FieldCount - 1)

{

jsonString.Append(strValue + ",");

}

else

{

jsonString.Append(strValue);

}

}

jsonString.Append("},");

}

dataReader.Close();

jsonString.Remove(jsonString.Length - 1, 1);

jsonString.Append("]");

return jsonString.ToString();

}

#endregion

List转换成Json、对象集合转换Json等的更多相关文章

  1. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  2. JSON转换类(二)--List转换成Json、对象集合转换Json等

    #region List转换成Json /// <summary> /// List转换成Json /// </summary> public static string Li ...

  3. Java对象转换成xml对象和Java对象转换成JSON对象

    1.把Java对象转换成JSON对象 apache提供的json-lib小工具,它可以方便的使用Java语言来创建JSON字符串.也可以把JavaBean转换成JSON字符串. json-lib的核心 ...

  4. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值

    一.json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式.采用完全独立于语言的文本格式,是一种理想的数据交换格式. 同时,json是jav ...

  5. json字符串转json对象,json对象转换成java对象

    @RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @Resp ...

  6. json中把非json格式的字符串转换成json对象再转换成json字符串

    JSON.toJson(str).toString()假如key和value都是整数的时候,先转换成jsonObject对象,再转换成json字符串

  7. Razor 将C#对象转换成Javascript对象, json还原被转码的字符 &quot·· HTML转义符

    Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Ra ...

  8. json字符串转成 json对象 json对象转换成java对象

    import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> ...

  9. [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)

    点击下载 ConvertJson.rar 本类实现了 C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json|等功能大家先预 ...

随机推荐

  1. hdu1151 Air Raid

    http://acm.hdu.edu.cn/showproblem.php?pid=1151 增广路的变种2:DAG图的最小路径覆盖=定点数-最大匹配数 #include<iostream> ...

  2. 将集成spring的项目从tomcat上移植到weblogic下存在的问题

    当在weblogic下部署时, 1.需要jersey-servlet-xx.jar,jersey-core-xx.jar,jersey-server-xx.jar: 2.在web.xml中全局参数co ...

  3. [z]CAP原理和BASE思想

    分布式领域CAP理论,Consistency(一致性), 数据一致更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容错性) 可 ...

  4. Nmap扫描原理与用法

    Nmap扫描原理与用法 1     Nmap介绍 Nmap扫描原理与用法PDF:下载地址 Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Audit ...

  5. 4、JPA table主键生成策略(在JPA中table策略是首推!!!)

    用 table 来生成主键详解 它是在不影响性能情况下,通用性最强的 JPA 主键生成器.这种方法生成主键的策略可以适用于任何数据库,不必担心不同数据库不兼容造成的问题. initialValue不起 ...

  6. 简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现。

    简单的算法题, Find Minimum in Rotated Sorted Array 的Python实现. 题目: Suppose a sorted array is rotated at som ...

  7. [置顶] Android系统五大布局详解Layout

    我们知道Android系统应用程序一般是由多个Activity组成,而这些Activity以视图的形式展现在我们面前,视图都是由一个一个的组件构成的.组件就是我们常见的Button.TextEdit等 ...

  8. 【转载】String、StringBuffer与StringBuilder之间区别

    文章来源:http://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html 这两天在看Java编程的书,看到String的时候将之前没有弄懂的 ...

  9. netty httpserver

    netty也可以作为一个小巧的http服务器使用. package com.ming.netty.http.httpserver; import java.net.InetSocketAddress; ...

  10. Struts知识问答 分类: 面试 2015-07-10 22:01 4人阅读 评论(0) 收藏

    1. 简述Struts框架的初始化流程. 答案: 对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet ActionServlet从struts-c ...