- 浏览: 245646 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
yulanlian:
...
实现在删除数据后,自增列的值连续 -
RonQi:
楼主写的很好,支持原创!
Google Protocol Buffers
下面整理任意类型数据转换成json数据的方法超实用函数: /// <summary> /// List转成json /// </summary> /// <typeparam name="T"></typeparam> /// <param name="jsonName"></param> /// <param name="list"></param> /// <returns></returns> 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(); } /// <summary> /// List转成json /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <returns></returns> public static string ListToJson<T>(IList<T> list) { object obj = list[0]; return ListToJson<T>(list, obj.GetType().Name); } /// <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 + "}"; } /// <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 + "]"; } /// <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 + "]"; } /// <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> /// <param name="jsonName"></param> /// <param name="dt"></param> /// <returns></returns> 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(); }
/// <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(); }
/// <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 + "}"; }
/// <summary> /// 过滤特殊字符 /// </summary> /// <param name="s"></param> /// <returns></returns> private static string String2Json(String s) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.Length; i++) { char c = s.ToCharArray()[i]; switch (c) { case '\"': sb.Append("\\\""); break; 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; default: sb.Append(c); break; } } return sb.ToString(); }
/// <summary> /// 格式化字符型、日期型、布尔型 /// </summary> /// <param name="str"></param> /// <param name="type"></param> /// <returns></returns> private static string StringFormat(string str, Type type) { if (type == typeof(string)) { str = String2Json(str); str = "\"" + str + "\""; } else if (type == typeof(DateTime)) { str = "\"" + str + "\""; } else if (type == typeof(bool)) { str = str.ToLower(); } return str; }
文章来自学IT网:http://www.xueit.com/cshare/show-5188-2.aspx
发表评论
-
无法破解的软件注册码算法
2011-03-30 19:43 970无法破解的软件注册码算法 实现原代码,包括一个Asp.Net页 ... -
一个C#写的调用外部进程类
2011-03-06 19:38 1224作者:肖波 C# 调用外 ... -
C# 4.0新特性——“协变”与“逆变”以及背后的编程思想
2011-01-16 00:49 8542011-01-14 09:47 | 2265 ... -
【转】把.NET程序部署到没有安装.NET Framwork的机器上
2010-12-04 19:47 1031摘要 本文讨论了如 ... -
c#中的有用的方法
2010-12-04 19:35 1927using System; using System. ... -
C#中小数点四舍五入的方法
2010-10-31 17:55 2051下面介绍6种asp.net小数点四舍五入的方法1.只要求保留N ... -
C#中char[]转换成string及string转换成char[]
2010-10-31 17:51 2100C#中char[]与string互相转换的写法: strin ... -
C#调用Exe文件的方法
2010-10-31 17:50 2065很简单的代码就可以实现C#调用EXE文件,如下: 引入usi ... -
解决C#中Thread.Sleep()的作用及用法
2010-10-31 17:45 8123Thread.Sleep 函数来使线程 ... -
C#实现所有经典排序算法(选择排序,冒泡排序,快速排序,插入排序,希尔排序)
2010-10-31 17:45 974C#实现所有经典排序算 ... -
正则表达式整理,C#正则表达式整理备忘
2010-10-31 17:37 864有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能 ... -
C# sealed关键字用法
2010-10-31 17:35 931sealed的中文意思是密封,故名思义,就是由它修饰的类或方法 ... -
C#操作系统注册表的方法
2010-10-31 17:34 981Windows 操作系统的注册 ... -
C#多线程中lock的用法
2010-10-31 17:30 848最近在看些c#的代码,发现很多是以前没有接触到了,只能上网查, ... -
C#调用控制台程序并取得输出结果
2010-10-31 17:08 3274Net本身的功能虽然很强 ... -
C#中HashTable的使用方法
2010-10-31 17:05 1257一,哈希表(Hashtable)简述 在.NET Fra ...
相关推荐
在C#编程中,将任意类型的数据转换成JSON(JavaScript Object Notation)格式是一种常见的需求,特别是在处理数据传输和存储时。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文...
C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中.../// 识别Json中的值
本主题聚焦于一个特定的实用工具,即“C# Excel转Json或Js数据格式工具”。这个工具允许用户将Excel电子表格的数据转换为Json或JavaScript数据格式,这两种格式在Web开发中非常常见。 首先,让我们深入了解Excel。...
在C#编程中,将任意类型的数据转换为JSON(JavaScript Object Notation)字符串是一项常见的任务。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也容易让机器解析和生成。C#提供了多种方法来实现这个转换...
JSON数据格式转换是C#语言中常用的数据交换方式,特别是在Web应用程序中。下面将详细介绍C#的JSON数据格式转换方法。 标题:C#的JSON数据格式转换 描述:C#的JSON数据转换,转换对象为JSON格式数据 标签:C#、...
其中一种常见的数据格式就是JSON(JavaScript Object Notation),它是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在.NET框架下,可以通过多种方式实现数据的序列化与反序列化,从而...
C#实现任意数据类型转成json格式输出。需要的朋友可以过来参考下,希望对大家有所帮助
"C#中把DataTable、Dataset转Json数据" 在C#中,把DataTable、Dataset转换为Json数据是一个常见的需求。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,基于ECMAScript(W3C制定的JS规范的一个...
本文将深入探讨如何在C#中将JSON格式的数据解析为IList类型。 首先,我们需要了解`IList<T>`接口。它是.NET框架中的一部分,定义了一个有序的、可修改的集合,允许索引访问。T代表你想要存储的元素类型。例如,如果...
在IT领域,数据格式的转换是一项常见的需求,尤其是在Web开发中,JSON(JavaScript Object Notation)因其轻量级、易读性以及跨平台兼容性,成为数据交换的标准格式之一。对于使用C#语言进行开发的程序员来说,将...
本程序主要实现c#分解json格式的数据, 先把标准的json数据分解出来填充到DataTable中,再绑定到页面控件上实现显示的效果 json是一种标准格式数据,在开发中经常会用到,所以把这段源码 给大家分享出来,希望能对...
在C#编程中,将任意类型的数据转换为JSON(JavaScript Object Notation)格式是常见的需求,特别是在处理数据序列化和网络通信时。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在...
在.NET框架中,C#语言提供了丰富的库支持与JSON数据类型的交互。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于Web服务之间的数据传输,因为其易读、易写,同时也被广泛应用于各种编程语言...
实体类转换成 JSON 字符串,将datatable转换为json,DataTable转换实体类
C#接收Json格式数据,中文出现乱码解决方法
在C#编程中,验证一个文本字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在...
3. List转换成Json 4. 对象转换为Json 5. 对象集合转换Json 6. 普通集合转换Json 7. DataSet转换为Json 8. Datatable转换为Json 9. DataReader转换为Json 10. 解析JSON字符串生成对象实体 11. 解析JSON数组生成对象...
使用OpenXML实现的一个C#类生成器和数据转Json功能.zip使用OpenXML实现的一个C#类生成器和数据转Json功能.zip使用OpenXML实现的一个C#类生成器和数据转Json功能.zip使用OpenXML实现的一个C#类生成器和数据转Json功能...