博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#无需第三方插件实现json和table互转
阅读量:6527 次
发布时间:2019-06-24

本文共 2989 字,大约阅读时间需要 9 分钟。

C# 数据库查询结果table转化为json字符串,或反向把json字符串转换为DataTable数据集合 以下代码经实践简单可用。

转换通用类定义:

using System;using System.Collections.Generic;using System.Collections;using System.Linq;using System.Web;using System.Web.Script.Serialization;using System.Data;using System.Reflection;namespace testcsoft{    public static class jsonObject     {     #region DataTable 转换为Json 字符串    ///     /// DataTable 对象 转换为Json 字符串    ///     ///     /// 
public static string ToJson(this DataTable dt) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = new ArrayList(); foreach (DataRow dataRow in dt.Rows) { Dictionary
dictionary = new Dictionary
(); //实例化一个参数集合 foreach (DataColumn dataColumn in dt.Columns) { dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName].ToString()); } arrayList.Add(dictionary); //ArrayList集合中添加键值 } return javaScriptSerializer.Serialize(arrayList); //返回一个json字符串 } #endregion #region Json 字符串 转换为 DataTable数据集合 ///
/// Json 字符串 转换为 DataTable数据集合 /// ///
///
public static DataTable ToDataTable(this string json) { DataTable dataTable = new DataTable(); //实例化 DataTable result; try { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值 ArrayList arrayList = javaScriptSerializer.Deserialize
(json); if (arrayList.Count > 0) { foreach (Dictionary
dictionary in arrayList) { if (dictionary.Keys.Count
() == 0) { result = dataTable; return result; } if (dataTable.Columns.Count == 0) { foreach (string current in dictionary.Keys) { dataTable.Columns.Add(current, dictionary[current].GetType()); } } DataRow dataRow = dataTable.NewRow(); foreach (string current in dictionary.Keys) { dataRow[current] = dictionary[current]; } dataTable.Rows.Add(dataRow); //循环添加行到DataTable中 } } } catch { } result = dataTable; return result; } #endregion }}

使用方法:

DataTable -->  json :

string  json = jsonObject.ToJson(ds.Tables[0]);     

 // 其中  ds.Tables[0]  是数据库查询的表

  json -->  DataTable :

DataTable dt = jsonObject.ToDataTable(json);

这是测试从数据库获取数据并table和json互转结果

你可能感兴趣的文章
9月26日云栖精选夜读:阿里Java代码规约插件即将全球首发,邀您来发布仪式现场...
查看>>
北京市交管局联合高德地图发布北京中考出行提示
查看>>
如何防止应用程序泄密?
查看>>
一文带你看懂物联网开源操作系统
查看>>
什么是实践中真正在用的数据科学系统?
查看>>
新型智慧城市:构建“互联网+”新生活
查看>>
韩企全球首造72层3D NAND芯片 下半年或量产
查看>>
《R语言编程艺术》——1.4 R语言中一些重要的数据结构
查看>>
如何让你的手机比别人最先升级到 Android L
查看>>
Mozilla 开源支持计划:首批捐助 7 开源项目 50 万美元
查看>>
《Photoshop混合模式深度剖析》目录—导读
查看>>
《为iPad而设计:打造畅销App》——抓住iPad的核心用法
查看>>
华尔街宫斗戏升温:银行巨头和纽交所争夺交易数据所有权
查看>>
《精通自动化测试框架设计》—第2章 2.6节使用数据库
查看>>
《网站性能监测与优化》一2.4 软件服务应用网站
查看>>
《HTML5 开发实例大全》——1.26 使用鼠标光标拖动网页中的文字
查看>>
【JSP开发】有关session的一些重要的知识点
查看>>
生产库中遇到mysql的子查询
查看>>
3144: [Hnoi2013]切糕
查看>>
异构数据库
查看>>