在网上找的比较全的json应用的类库。包含:DataTable转换Json,List 转换 Json,Model 转换 Json。下面说下Json的优势。 JSON的优点:  1、基于纯文本,跨平台传递极其简单; 2、Javascript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的; 5、容易编写和解析,当然前提是你要知道数据结构; 下面直接贴代码: [code lang="CSharp"] public class JsonHandler { /// <summary> /// DataTable转成Json /// </summary> /// <param name="jsonName">Json名</param> /// <param name="dt">table数据</param> /// <returns></returns> 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++) { 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> /// DataTable转成Json /// </summary> /// <param name="dt">table数据</param> { /// <returns></returns> public static string DataTableToJson(DataTable dt) StringBuilder Json = new StringBuilder(); Json.Append("["); 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++) { 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> /// List转成json /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="jsonName">Json名</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(); } /// <summary> /// List转成json /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="IL">数列</param> /// <returns></returns> public static string ObjectToJson<T>(IList<T> IL) { StringBuilder Json = new StringBuilder(); Json.Append("["); 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(); } /// <summary> /// Model 转换为Json /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="obj">数据对象</param> /// <returns></returns> public static string ObjectToJson<T>(T o) { StringBuilder Json = new StringBuilder(); T obj = Activator.CreateInstance<T>(); Type type = obj.GetType(); PropertyInfo[] Pi = type.GetProperties(); Json.Append("{"); for (int i = 0; i < Pi.Length; i++) { Json.Append("\"" + Pi[i].Name.ToString() + "\":\"" + Pi[i].GetValue(o, null) + "\""); if (i < Pi.Length - 1) { Json.Append(","); } } Json.Append("}"); return Json.ToString(); } } [/code]

转载于:https://www.cnblogs.com/woaic/archive/2012/11/12/3942801.html

JsonHelper相关推荐

  1. asp.net的JSONHelper 类

    调用方法: JSONHelper json = new JSONHelper(); json.success = true; json.AddItem("aid", "1 ...

  2. 【C#公共帮助类】JsonHelper 操作帮助类, 以后再也不用满地找Json了,拿来直接用...

     四个主要操作类:JsonConverter .JsonHelper .JsonSplit .AjaxResult 一.JsonConverter: 自定义查询对象转换动态类.object动态类转换j ...

  3. .net Json JavaScriptSerializer JsonHelper类

    结合.net 的JavaScriptSerializer 类实现Json数据处理 调用1: Model.Users m = BLL.UsersBLL.GetUserById(Convert.ToInt ...

  4. C# JsonHelper类

    记录一下,方便下次用. public class JsonHelper{#region Json/// <summary>/// JavaScriptSerializer/// </ ...

  5. asp.net JSONHelper JSON帮助类

    /************************************************** * 版权所有: Mr_Sheng * 文 件 名: JSONHelper.cs * 文件描述: ...

  6. C# JsonHelper

    在c#项目中有时会用到json格式字符串和对象数据类型的转换,下面是一个转换工具类: 说明:根据Json字符串生成对象时,是根据对应的属性名称赋值,多于或少于都不会报错. 使用"DataCo ...

  7. jsonhelper java_JSON和JAVA的POJO的相互转换

    import java.util.Collection; import java.util.HashMap; import java.util.Map; import net.sf.json.JSON ...

  8. ASP.NET之JSONHelper操作

      之前说到了Ext.Net中GridPanel行取值的问题(Ext.Net开发_GridPanel行选中取值),涉及到checkBox操作时,要留个心眼注意下取值的区别!返回值是Json格式. 现在 ...

  9. JsonHelper(Json帮助类)

    1 /// <summary> 2 /// Json帮助类 3 /// </summary> 4 public class JsonHelper 5 { 6 /// <s ...

  10. JSONHelper JSON帮助类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

最新文章

  1. caffe中在某一层获得迭代次数的方法以及caffe编译时报错 error: ‘to_string‘ is not a member of ‘std‘解决方法
  2. flannel源码分析--main
  3. lambda dict sort
  4. HTML5-WebSocket实现对服务器CPU实时监控
  5. 【机器视觉】 exit算子
  6. C#对用户密码使用MD5加密与解密
  7. pytorch学习入门 (二) Variable(变量)
  8. 解析Windows 2000/XP进程工作集
  9. Python学习(十)Python 函数
  10. 熟悉 scrollTop ,轻松做5个方面的事情。
  11. Linux基础 权限与用户管理命令
  12. 电子科大+矩阵理论+真题总结
  13. 菲利普·安德森:凝聚态物理的艺术家
  14. 如何实现异地远程登录计算机,两台异地电脑怎么实现远程控制
  15. c语言幼儿园积木游戏,干货来袭!超详细幼儿园游戏活动教案
  16. Android 日历表事件表操作
  17. [论文阅读笔记]DeepFool: a simple and accurate method to fool deep neural networks
  18. BlueCoat被私募股权公司收购
  19. Unity 5.6正式版发布,Unity 2017即将来临
  20. 连接问题:ORA-3136:inbound connection timed out

热门文章

  1. easypoi实现Excel导入
  2. Springboot引用外部配置文件
  3. 防火墙/IDS测试工具Ftester
  4. iOS - OC Foundation 框架
  5. Linux 配置ip地址
  6. 《The C Programming Language》(2nd Ed) Introduction 翻译
  7. 收藏——CodeProject - 使用特性(attributes)和激活机制来实现工厂模式
  8. k8s监控之kube-state-metrics
  9. 深度学习与计算机视觉系列(8)_神经网络训练与注意点
  10. 事务的应用demo1-------采用JDBC硬编码方式模拟银行转账。