今天看到Json转DataTable的例子,总结一下。。。。

 using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Script.Serialization;
namespace Json转DT_List
{ class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"F:\vs2015Test\VS2015学习\Json转DT,List\json1.json", Encoding.Default);
var jsonStr = sr.ReadToEnd();
var Dt = JsonToDatatable("");
var str = DataTableToJson(new DataTable());
Console.WriteLine(str); Console.ReadKey();
} public static DataTable JsonToDatatable(string json)
{
DataTable datatable = null;
if (!string.IsNullOrEmpty(json))
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList list = jss.Deserialize<ArrayList>(json);//将指定的 JSON 字符串转换为 T 类型的对象,可以是自己的List对象
datatable = new DataTable();
if (list.Count > )
{
foreach (Dictionary<string, object> ll in list)//定义一个.Dictionary盛放list中的对象
{
if (datatable.Columns.Count == )
{
foreach (var key in ll.Keys)
datatable.Columns.Add(key, ll[key].GetType()); //添加新列
}
var newRow = datatable.NewRow();
foreach (var k in ll.Keys)
{
newRow[k] = ll[k];//给行上的列赋值
}
datatable.Rows.Add(newRow);
}
}
}
return datatable;
} public static string DataTableToJson(DataTable dt)
{
var jsonStr = "";
if (dt != null)
{
ArrayList arrlist = new ArrayList();
JavaScriptSerializer jss = new JavaScriptSerializer();
foreach (DataRow row in dt.Rows)//遍历DataTable的Rows要是用DataRow
{
Dictionary<string, object> dicDrow = new Dictionary<string, object>();
foreach (DataColumn c in dt.Columns)//遍历DataTable的Columns要使用DataColumn
dicDrow.Add(c.ColumnName, row[c.ColumnName]);
arrlist.Add(dicDrow);
}
jsonStr = jss.Serialize(arrlist);
}
return jsonStr;
}
}
}

该方法只能转换JSON数组格式的字符串,JSON对象格式只能转换成对象。。。。。

附带json1.json格式

[
{
"CFTUin": "",
"CancelDeadline": "2013-09-12 23:00:00",
"CheckInDate": "2013-09-12 00:00:00",
"CheckOutDate": "2013-09-13 00:00:00",
"CityID": "",
"CurrencyCode": "RMB",
"HotelID": "",
"HotelName": "乐家连锁(北京天坛南门店)(原速8酒店(北京天坛南门店)",
"ListID": "",
"PayAmt": "",
"PayType": "",
"RommsCnt": "",
"SPTransID": "",
"State": ""
},
{
"CFTUin": "",
"CancelDeadline": "2013-10-13 23:00:00",
"CheckInDate": "2013-10-13 00:00:00",
"CheckOutDate": "2013-10-18 00:00:00",
"CityID": "",
"CurrencyCode": "RMB",
"HotelID": "",
"HotelName": "上海凯顿酒店",
"ListID": "",
"PayAmt": "",
"PayType": "",
"RommsCnt": "",
"SPTransID": "",
"State": ""
}
]

Json转换成DataTable的更多相关文章

  1. json转换成对象

    在json转换成对象时,json的key会与java 类的字段一一对应.如果没有映射上的java字段会在该数据类型上填充默认值,如int 0,String null 等. 没有映射的json key在 ...

  2. 带复杂表头合并单元格的HtmlTable转换成DataTable并导出Excel

    步骤: 一.前台JS取HtmlTable数据,根据设定的分隔符把数据拼接起来 <!--导出Excel--> <script type="text/javascript&qu ...

  3. C#_List转换成DataTable

    /// <summary> /// 讲list集合转换成datatable /// </summary> /// <param name="list" ...

  4. 将List转换成DataTable

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  5. list转换成DataTable

    list转换成DataTable类如下: public static DataTable ToDataTable<T>(this IList<T> datas) { DataT ...

  6. 将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据

    领导让在存储过程中批量添加数据,找出效率最高的,我看到后台代码后,发现可以将list<对象>转换成DataTable,把DataTable转换成参数传入存储过程实现批量插入数据,知道还有其 ...

  7. C# DataTable转换成实体列表 与 实体列表转换成DataTable

    /// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...

  8. 获取报告 Stream转string,利用字符串分割转换成DataTable

    protected void Button1_Click(object sender, EventArgs e) { MemoryStream stream = new MemoryStream(); ...

  9. C#:CsvReader读取.CSV文件并转换成DataTable

    原文引用:https://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader using LumenWorks.Framework.IO.Csv; ...

随机推荐

  1. 极客学院免费VIP

    [手快福利]用我的链接注册极客学院,你我都能免费得30天VIP!6500+编程开发视频教程随便学,还能下载资料和源码 http://e.jikexueyuan.com/invite/index.htm ...

  2. MVC POST请求后执行javascript代码

    [HttpPost] public ActionResult PostTest() { //你的业务代码 //...... //要执行的js string js = "window.loca ...

  3. sqlserver where in 在 mysql

    ) tmp); 主句(select * from (从句 temp) sql的 where in 删除  要更改为  // in( select * from ((select idfrom twhe ...

  4. mui scrollTo到指定位置,出现空白页及拉不动的问题解决

    使用方式简介 mui 列表页使用的是 mui的插件实现的上拉加载下拉刷新,但是从详情页回到列表页时 不能回到之前的位置.所以想到了使用缓存. 第一次和第二次的试验是失败的.失败后,就想用其他办法来解决 ...

  5. 一个完整的Appium手机自动化测试实例

    实现过程: 1.使用环境 appium .安卓SDK .python 本文重点是自动化实例,环境搭建过程省略. 2.找到被测APP的包名和Activity Name 手机连接上电脑后,在DOS环境先使 ...

  6. 用了那么多项目管理工具,还是CORNERSTONE这款最好用

    在与软件开发有关的项目,往往会出现很难管理情况.许多事情都需提前计划.控制与管理,所以许多项目经理很容易迷失在计划的过程中.幸运的是,市场上提供了各种各样的项目管理工具.但不幸的是,工具实在是太多了. ...

  7. 触发a标签

    var aLink = document.createElement("a"); aLink.download = ''; aLink.href = url; if (docume ...

  8. JavaScript中原生事件

    DOM0事件模型: 所有浏览器都支持,只能注册一种事件 1.绑定: document.getElementById("id").onclick = function(e){}; 解 ...

  9. [luogu4478 BJWC2018] 上学路线 (容斥原理+拓展lucas)

    传送门 Description 小B 所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M). 小B 家住在西南角,学校在东北角.现在有T 个路口进行施工,小B 不能通过这些路 ...

  10. Python 爬虫的代理 IP 设置方法汇总

    本文转载自:Python 爬虫的代理 IP 设置方法汇总 https://www.makcyun.top/web_scraping_withpython15.html 需要学习的地方:如何在爬虫中使用 ...