将 DataTable 或 String 数据转化为json(.NET)
2012-12-28 14:08
309 查看
直接贴代码:
using System; using System.Data; using System.Text; using System.Collections.Generic; using System.Reflection; namespace PowerCheck.Tools { public class ToJson { public ToJson() { } public static string DataTableToJson(string jsonName, DataTable dt) { StringBuilder Json = new StringBuilder(); 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++) { StringBuilder sb = new StringBuilder(); escape(dt.Rows[i][j].ToString(),sb); Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + sb.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> /// 将string数组转换成json字符串 /// </summary> /// <param name="TagStrings">json对象数组名称</param> /// <param name="Strings">json对象数组值</param> /// <returns></returns> public static string StringArrayToJason(string[] TagStrings, string[] Strings) { StringBuilder Json = new StringBuilder(); Json.Append("{"); for (int i = 0; i < Strings.Length; i++) { Json.Append(TagStrings[i]); Json.Append(":"); Json.Append(Strings[i]); if (i < Strings.Length - 1) { Json.Append(","); } } Json.Append("}"); return Json.ToString(); } 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(); } public static void escape(string s, StringBuilder sb) { for (int i = 0; i < s.Length; i++) { char ch = s[i]; switch (ch) { case '"': sb.Append("\\\""); break; case '\\': sb.Append("\\\\"); break; case '\b': sb.Append("\\b"); break; case '\f': sb.Append("\\f"); break; case '\n': sb.Append("\\n"); break; case '\r': sb.Append("\\r"); break; case '\t': sb.Append("\\t"); break; case '/': sb.Append("\\/"); break; default: // Reference: http://www.unicode.org/versions/Unicode5.1.0/ if ((ch >= '\u0000' && ch <= '\u001F') || (ch >= '\u007F' && ch <= '\u009F') || (ch >= '\u2000' && ch <= '\u20FF')) { string ss = Convert.ToString(ch,16); sb.Append("\\u"); for (int k = 0; k < 4 - ss.Length; k++) { sb.Append('0'); } sb.Append(ss.ToUpper()); } else { sb.Append(ch); } break; } } } } }
相关文章推荐
- vb.net 二级联动 datatable生成json数据
- C# ASP.NET替换要转化为json的数据中的特殊符号
- ajax请求回来的数据是string将其转化成json对象
- DataSet、DataTable、Json、List 等各种数据的相互转化
- asp.net MVC 将 DataTable转化为客户端的JSon字符串及Ext JSon对象
- [开发知识点] 使用JQuery 将DataTable 转化成JSON数据,前端无法处理JSON数据的注意事项
- Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据
- Asp.net中Json数据的转化,读取与应用
- asp.net中将dataTable数据转化为List<>
- json-lib对象转化为json数据抛net.sf.json.JSONException: va.lang.reflect.InvocationTargetException异常
- 将clob数据类型转化为String类型(在json字符串赋值时候)
- Asp.net中Json数据的转化,读取与应用
- Asp.net中Json数据的转化,读取与应用
- String类型的json数据转化为map对象
- 【转载】使用Json比用string返回数据更友好,也更面向对象一些 |Asp.net MVC 2.0 + Unity 2.0(IoC) + EF4.0 实例:RoRoWoBlog 开源项目框架代码
- 使用JQuery 将DataTable 转化成JSON数据,前端无法处理JSON数据的注意事项
- .NET DataTable转化为json格式
- .net json 和 Datatable 相互转化
- Asp.net C# 使用Newtonsoft.Json 实现DataTable转Json格式数据
- springMvc直接接收json数据自动转化为Map<String,String>