1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. using System.Web.Script.Serialization;
  5. using System.Data;
  6. namespace Utils
  7. {
  8. /// <summary>
  9. /// JSON帮助类
  10. /// </summary>
  11. public class JsonHelper
  12. {
  13. /// <summary>
  14. /// 对象转JSON
  15. /// </summary>
  16. /// <param name="obj">对象</param>
  17. /// <returns>JSON格式的字符串</returns>
  18. public static string ObjectToJSON(object obj)
  19. {
  20. JavaScriptSerializer jss = new JavaScriptSerializer();
  21. try
  22. {
  23. return jss.Serialize(obj);
  24. }
  25. catch (Exception ex)
  26. {
  27. throw new Exception("JSONHelper.ObjectToJSON(): " + ex.Message);
  28. }
  29. }
  30. /// <summary>
  31. /// 数据表转键值对集合
  32. /// 把DataTable转成 List集合, 存每一行
  33. /// 集合中放的是键值对字典,存每一列
  34. /// </summary>
  35. /// <param name="dt">数据表</param>
  36. /// <returns>哈希表数组</returns>
  37. public static List<Dictionary<string, object>> DataTableToList(DataTable dt)
  38. {
  39. List<Dictionary<string, object>> list
  40. = new List<Dictionary<string, object>>();
  41. foreach (DataRow dr in dt.Rows)
  42. {
  43. Dictionary<string, object> dic = new Dictionary<string, object>();
  44. foreach (DataColumn dc in dt.Columns)
  45. {
  46. dic.Add(dc.ColumnName, dr[dc.ColumnName]);
  47. }
  48. list.Add(dic);
  49. }
  50. return list;
  51. }
  52. /// <summary>
  53. /// 数据集转键值对数组字典
  54. /// </summary>
  55. /// <param name="dataSet">数据集</param>
  56. /// <returns>键值对数组字典</returns>
  57. public static Dictionary<string, List<Dictionary<string, object>>> DataSetToDic(DataSet ds)
  58. {
  59. Dictionary<string, List<Dictionary<string, object>>> result = new Dictionary<string, List<Dictionary<string, object>>>();
  60. foreach (DataTable dt in ds.Tables)
  61. result.Add(dt.TableName, DataTableToList(dt));
  62. return result;
  63. }
  64. /// <summary>
  65. /// 数据表转JSON
  66. /// </summary>
  67. /// <param name="dataTable">数据表</param>
  68. /// <returns>JSON字符串</returns>
  69. public static string DataTableToJSON(DataTable dt)
  70. {
  71. return ObjectToJSON(DataTableToList(dt));
  72. }
  73. /// <summary>
  74. /// JSON文本转对象,泛型方法
  75. /// </summary>
  76. /// <typeparam name="T">类型</typeparam>
  77. /// <param name="jsonText">JSON文本</param>
  78. /// <returns>指定类型的对象</returns>
  79. public static T JSONToObject<T>(string jsonText)
  80. {
  81. JavaScriptSerializer jss = new JavaScriptSerializer();
  82. try
  83. {
  84. return jss.Deserialize<T>(jsonText);
  85. }
  86. catch (Exception ex)
  87. {
  88. throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
  89. }
  90. }
  91. /// <summary>
  92. /// 将JSON文本转换为数据表数据
  93. /// </summary>
  94. /// <param name="jsonText">JSON文本</param>
  95. /// <returns>数据表字典</returns>
  96. public static Dictionary<string, List<Dictionary<string, object>>> TablesDataFromJSON(string jsonText)
  97. {
  98. return JSONToObject<Dictionary<string, List<Dictionary<string, object>>>>(jsonText);
  99. }
  100. /// <summary>
  101. /// 将JSON文本转换成数据行
  102. /// </summary>
  103. /// <param name="jsonText">JSON文本</param>
  104. /// <returns>数据行的字典</returns>
  105. public static Dictionary<string, object> DataRowFromJSON(string jsonText)
  106. {
  107. return JSONToObject<Dictionary<string, object>>(jsonText);
  108. }
  109. }
  110. }

怎样在ASP.NET(C#) 使用Json序列化反序列化问题?的更多相关文章

  1. 使用JSON.Net(Newtonsoft.Json)作为ASP.Net MVC的json序列化和反序列化工具

    ASP.Net MVC默认的JSON序列化使用的是微软自己的JavaScriptSerializer.性能低不说,最让人受不了的是Dictionary<,>和Hashtable类型居然对应 ...

  2. Asp.Net Core中Json序列化处理整理

    一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...

  3. nodejs - json序列化&反序列化示例

    // demo-json.js var obj = { "name": "LiLi", "age": 22, "sex" ...

  4. json序列化 & 反序列化

    json序列化: json的dumps方法可以将json格式数据序列为python的相关数据类型,比如str,常用于打印,另外,在序列化时,中文汉字被转换为unicode编码,在dumps函数中添加参 ...

  5. json序列化反序列化Jackson相关注解

    1.@Transient @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性:如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架 ...

  6. C语言JSON序列化/反序列化

    最近想找一个C语言处理嵌套结构体和结构体数组的json库,理想的是能够很容易处理复杂结构体嵌套,并且使用简单的,但是没找到比较合适的,于是打算自己封装一个: 两个问题: C语言结构体本身没有元数据,这 ...

  7. ASP.NET(C#) Json序列化反序列化帮助类Jsonhelper

    原文地址:https://ken.io/note/csharp-asp.net-jsonhelper using System; using System.Collections.Generic; u ...

  8. spring cloud jackson 枚举json互转 枚举json序列化/反序列化

    先定义一个枚举基类 import com.fasterxml.jackson.databind.annotation.JsonDeserialize; @JsonDeserialize(using = ...

  9. JSON序列化反序列化

    JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文本格式,可以很容易在 ...

随机推荐

  1. Linux性能优化实战:系统的swap变高(09)

    一.实验环境 1.操作系统 root@openstack:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu ...

  2. js时间戳转日期

    //时间戳转日期 2017-04-30 13:20 //type=1--> 2017-04-30 13:20 //type=2-->2018年08月 //type=3-->2018- ...

  3. 使用git把本地目录传到远程仓库

    需求: 要把本地不为空的一个目录和远程现有的一个仓库关联 步骤如下: git init //生成.git目录 git add . //把当前目录里的文件加入到暂存区 git commit -m '上传 ...

  4. React(17)异步组件

    26.异步组件当在React里使用异步组件时,核心知识是两个: webpack 如何异步加载其他模块:通过 require(['xxx'], function(module){})来实现:React ...

  5. nginx Access-Control-Allow-Origin 多域名跨域设置

    2019-1-16 12:24:15 星期三 网站的静态文件(js, css, 图片, 字体等)是在一个单独的域名下的, 为了防止非法访问, 给nginx添加了跨域的控制, 也可以在PHP代码中添加 ...

  6. nginx conf_ctx ****

    http://blog.chinaunix.net/uid-27767798-id-3840094.html 断断续续看完了,还是没有全部清晰

  7. JAVA 三元运算符 求最大值

    package Code428; import java.util.Scanner; public class CodeScannerMax { public static void main(Str ...

  8. LoadRunner运行错误集

    1.error-27796错误解决方法: 在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters ...

  9. css @import 导入文件

    导入另一个css文件 例如 <style type="text/css"> @import url(css/main.css); //导入css目录下的main.css ...

  10. struts2-第一章-基础用法2

    一,回顾 struts2框架搭建步骤 (1)创建maven项目 (2)web.xml配置struts2的核心过滤器(filter) (3)pom.xml配置servlet,struts的依赖 (4)把 ...