C# Json、datatable、model互相转换
datatable转json 方法1
使用Json.Net DLL (Newtonsoft)
这个方法中要添加Json.Net DLL引用,我们可以从Newtonsoft下载Json.Net DLL(也可以在我的资源中下载),再导入命名空间,代码如下:
using Newtonsoft.Json;//导入命名空间 PlanRecordManager pr = new PlanRecordManager();DataTable dt= pr.GetProcessForMobile(session);string aa=JsonConvert.SerializeObject(dt);//这里直接调用转json的方法return "{'errid':'0', 'errmsg':'','ProcessList':"+ aa + "}";
datatable转json 方法2
使用StringBuilder
这是Json样本数据: {"姓名 ":"张三", "年龄":"30"}。Json里用花括号保存对象,它可以包含多个名称/值对。
所以使用StringBuilder我们可以创建一个类似的Json字符串。
由于要使用StringBuilder类,我们首先需要导入System.Text命名空间,如下:
using using System.Text;
public string DataTableToJson(DataTable table) { var JsonString = new StringBuilder(); if (table.Rows.Count > 0) { JsonString.Append("["); for (int i = 0; i < table.Rows.Count; i++) { JsonString.Append("{"); for (int j = 0; j < table.Columns.Count; j++) { if (j < table.Columns.Count - 1) { JsonString.Append("\"" + table.Columns[j].ColumnName.ToString()+ "\":" + "\"" + table.Rows[i][j].ToString() + "\","); } else if (j == table.Columns.Count - 1) { JsonString.Append("\"" + table.Columns[j].ColumnName.ToString()+ "\":" + "\"" + table.Rows[i][j].ToString() + "\""); } } if (i == table.Rows.Count - 1) { JsonString.Append("}"); } else { JsonString.Append("},"); } } JsonString.Append("]"); } return JsonString.ToString(); }
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<ArrayList>(json);if (arrayList.Count > 0){foreach (Dictionary<string, object> dictionary in arrayList){if (dictionary.Keys.Count<string>() == 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;}
json转List<model>集合 (model类中必须要有json中的每一个属性)
using Newtonsoft.Json;
//想转换成什么类型DeserializeObject<>尖括号就放什么类型 如果只想转model直接DeserializeObject<model>(json字符串)就可以了
List<BChaoModel> model = JsonConvert.DeserializeObject<List<BChaoModel>>(aa);//aa是json,创建一个实体类,实体类中要包含json中的属性
动态序列化得到json中的属性值(不用创建model实体类)
var DynamicObject = JsonConvert.DeserializeObject<dynamic>(result);//不用创建实体类得到json中某个属性的值 result是json字符串string aa = DynamicObject.result;//用序列化出来的对象直接.属性名
C# Json、datatable、model互相转换相关推荐
- 将Model对象转换成json文本或者json二进制文件
将Model对象转换成json文本或者json二进制文件 https://github.com/casatwy/AnyJson 注意:经过测试,不能够直接处理字典或者数组 主要源码的注释 AJTran ...
- HandyJSON:Swift语言JSON转Model工具库
背景 JSON是移动端开发常用的应用层数据交换协议.最常见的场景便是,客户端向服务端发起网络请求,服务端返回JSON文本,然后客户端解析这个JSON文本,再把对应数据展现到页面上. 但在编程的时候,处 ...
- Codable实现json转Model,是时候干掉HandyJSON了!
自从开始使用Swift做项目,一直都在使用HandyJSON,不可否认,HandyJSON在Swift4.0以前是个好东西,也尝试过其它json转mode的工具,最终发现还是HandyJSON最好用. ...
- swift 访问oracle,Swift实现JSON转Model - HandyJSON使用讲解
很多时候,我们从服务端请求下的数据都是Json格式,我们需要拿这些数据显示到我们的UI界面. 因此,我们的做法基本都会先将json转为方便使用的数据模型,或者也可以直接转字典解决. 在OC中,我们有很 ...
- java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...
- SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转
SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...
- json文件读取并转换成为字典python
json文件读取并转换成为字典python # JSON到字典转化 f = open('info.json', 'r') info_data = json.load(f) print(info_dat ...
- android java json与实体互相转换工具
推荐大家一个工具,能比较好的实现JSON与实体互相转换,支持数组等. 原帖是http://www.iteye.com/topic/484519,没有联系作者,就不直接转过来了. 大家可以去看一下. 下 ...
- 使用python开发json、csv数据格式转换工具
使用python开发json.csv数据格式转换工具 json和xml是业界常用的数据格式,而游戏行业经常使用csv配表,包括本地化文本和数值.本文介绍csv和json序列化.逆序列化相关的pytho ...
- 数组和JSON之间的格式转换
数组和JSON之间的格式转换 主要代码: const a = JSON.stringify(jsonStrings) //object转json const c = JSON.parse(a) //j ...
最新文章
- oracle可以面向对象吗,Jbdc助手-数据库操作面向对象的实现(oracle)
- Backtrack的安装配置
- 员工考勤信息管理小程序
- java json的使用,java中json的使用
- 【Android 安装包优化】资源混淆 ( 资源混淆效果 | APK 构建流程简介 | 资源 ID 组成 )
- JS - Class继承
- mysql get one_Ecshop 数据库操作方法getRow、getAll、getOne区别
- java.util.ConcurrentModificationException异常
- CV之 HOG特征描述算子-行人检测
- gdb调试时调用函数、设置观察点以及GDB的宏
- 算法复习周------“动态规划之‘图像压缩’”
- cad打开a3样板图形_CAD中怎样设置A3图纸模板
- Linux下的围棋软件,在Linux下和电脑下围棋
- Pcshare远控源码偏重分析(一)
- html中的bom和dom,BOM与DOM的区别
- 程序员必须要掌握哪些语言
- 手机拍的试卷打印出来是黑的一片怎么办
- 电脑的WiFi里面不显示可用的无线网络
- R语言数据处理——基础篇 data.frame基本操作
- 如何解决:“Avoid hardcoding the debug mode
热门文章
- 有史以来最容易理解的控制反转(IoC)与注入依赖(DI)
- 一篇文章让你拥有用不完的ip代理
- java1.7环境_java1.7环境变量设置
- winpcap java封装_利 用jnetpcap 封装libpcap
- numpy array和python list_Python list与NumPy array 区分详解
- python检查exe运行是否报错_python打包成exe格式后,在部分机子上没法运行
- php 支付宝支付回调与查询订单
- php phpexcel导入excel
- linux htop详细功能
- Python基础15_装饰器