博客
关于我
.Net Core API的一个Json转换Help类
阅读量:644 次
发布时间:2019-03-15

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

_SCSCHero Base 帮助类 JsonHelper 说明


JsonHelper 类概述

JsonHelper 是一个用于 JSON 数据处理的 static 函数集合,旨在为开发者提供简便的 JSON 数据操作功能。该类主要针对常见的数据转换场景,提供高效解决方案,包括对象到 JSON、DataTable 到 JSON、JSON 到对象等多种转换方式。本文将详细介绍该类的各项功能及其使用方法。


对象转 JSON

函数名称: public static string ObjectToJSON(object obj)

功能描述:
将传入的 object 参数转换为 JSON 格式字符串。该函数使用 JavaScriptSerializer 库进行 serialization 过程,确保输出结果符合 JSON 规范。

代码示例:

var sampleObject = new { Name = "张三", Age = 30, Address = "北京" };var jsonStr = JsonHelper.ObjectToJSON(sampleObject); // 输出:'{"Name":"张三","Age":30,"Address":"北京"}'

DataTable 到键值对集合的转换

函数名称: public static List<Dictionary<string, object>> DataTableToList(DataTable dt)

功能描述:
将数据表转换为键值对集合。每一行数据会生成一个 Dictionary 对应各列的值,这样便于后续的数据处理和存储。

代码示例:

DataTable dt = new DataTable();dt.Columns.Add("Column1", typeof(int));dt.Columns.Add("Column2", typeof(string));var row1 = new object[] { 1, "Data1" };var row2 = new object[] { 2, "Data2" };dt.Rows.Add(row1, row2);List
> list = JsonHelper.DataTableToList(dt);// 输出:'Listinus 的行数据集合'

数据集到键值对数组字典的转换

函数名称: public static Dictionary<string, List<Dictionary<string, object>>> DataSetToDic(DataSet ds)

功能描述:
将数据集转换为键值对数组字典。每个表名作为主键,对应的数据行集合作为值。

代码示例:

DataSet ds = new DataSet();DataTable table1 = CreateDataTable("Table1", true);DataTable table2 = CreateDataTable("Table2", false);ds.Tables.Add(table1);ds.Tables.Add(table2);var result = JsonHelper.DataSetToDic(ds);// 输出:'键值对数组字典'

DataTable 到 JSON 的转换

函数名称: public static string DataTableToJSON(DataTable dt)

功能描述:
将数据表直接转换为 JSON 格式字符串。首先使用 DataTableToList 方法将数据表转换为键值对集合,然后提交 ObjectToJSON 方法进行 JSON 序列化。

代码示例:

DataTable dt = new DataTable();// 填充 DataTable 数据string jsonStr = JsonHelper.DataTableToJSON(dt);// 输出:'标准的 JSON 格式'

JSON 到对象的反序列化

函数名称: public static T JSONToObject<T>(string jsonText)

功能描述:
将 JSON 文本反序列化为指定的对象类型。支持任意类型的反序列化,适用于复杂数据结构的恢复。

代码示例:

string sampleJson = "{\"Name\": \"张三\", \"Age\": 30}";var obj = JsonHelper.JSONToObject
>(sampleJson);// 输出:'字典对象'

从 JSON 到 DataTable 的反序列化

函数名称: public static Dictionary<string, List<Dictionary<string, object>>> TablesDataFromJSON(string jsonText)

功能描述:
将 JSON 文本反序列化为数据表结构的键值对集合。每个表的数据会生成对应的 DataTable 实例。

代码示例:

string jsonText = "{'Table1':[{'Column1':1,'Column2':'A'},{'Column1':2,'Column2':'B'}], 'Table2':[{'Column3':3,'Column4':'C'}]}";var dataDictionary = JsonHelper.TablesDataFromJSON(jsonText);// 输出:'数据表字典'

从 JSON 到 DataRow 的反序列化

函数名称: public static Dictionary<string, object> DataRowFromJSON(string jsonText)

功能描述:
将 JSON 文本反序列化为一个 DataRow 对应的键值对字典。

代码示例:

string jsonText = '{"Key": "rowKey", "Value": "rowValue"}';var rowDict = JsonHelper DataRowFromJSON(jsonText);// 输出:'行字典'

字典到 JSON 的序列化

函数名称: public static string DictionaryToJson(Dictionary<string, string> myDic)

功能描述:
将字典对象序列化为 JSON 格式字符串。使用 JsonConvert.SerializeObject 进行操作。

代码示例:

Dictionary
myDict = new Dictionary
{ {"Key1", "Value1"}, {"Key2", "Value2"}};string jsonStr = JsonHelper.DictionaryToJson(myDict);// 输出:'JSON 字符串'

JSON 到字典的反序列化

函数名称: public static Dictionary<string, string> JsonToDictionary(string jsonStr)

功能描述:
将 JSON 字符串反序列化为字典对象。

代码示例:

string jsonText = '{"Key1": "Value1", "Key2": "Value2"}';Dictionary
dic = JsonHelper.JsonToDictionary(jsonText);// 输出:'字典对象'

泛型 JSON 到字典反序列化

函数名称: public static Dictionary<TKey, TValue> DeserializeStringToDictionary<TKey, TValue>(string jsonStr)

功能描述:
将 JSON 字符串反序列化为具有特定键和值类型的字典。支持任意键和值类型的反序列化。

代码示例:

Dictionary
jsonDict = JsonHelper.DeserializeStringToDictionary
("{'ID':1,'Name':'张三'}");// 输出:'特定类型的字典对象'

总结

JsonHelper 类提供了丰富的功能,涵盖了从简单到复杂的 JSON 数据操作需求。无论是将对象、DataTable、DataSet 进行 JSON 序列化,还是将 JSON 转换为对象、DataTable,甚至反序列化 JSON 到字典或特定类型,这些函数都能高效准确地完成任务。

转载地址:http://ipwmz.baihongyu.com/

你可能感兴趣的文章
椭圆曲线的定义
查看>>
多代理区块链框架客户端的操作
查看>>
RSA操作中的公钥和私钥的生成
查看>>
go语言中类的继承和方法的使用
查看>>
caffe训练的时候遇到的text-format 错误解决方案。
查看>>
Java 8新特性(一):Lambda表达式
查看>>
Little Zu Chongzhi's Triangles
查看>>
算法入门
查看>>
cf-A. Wet Shark and Odd and Even(水)
查看>>
Train Problem II(卡特兰数+大数乘除)
查看>>
一些技术博客
查看>>
第01问:MySQL 一次 insert 刷几次盘?
查看>>
分布式 | DBLE 3.20.07.0 来啦!
查看>>
振荡器指标
查看>>
libvirtd:内部错误:Failed to apply firewall rule
查看>>
优先级队列2
查看>>
属性的使用错误
查看>>
TiKV 源码解析系列文章(十三)MVCC 数据读取
查看>>
1900分图论 : 1183E1 LCA + Kruskal
查看>>
(建议收藏)计算机网络:传输层概述、UDP协议与可靠传输协议习题解析与拓展
查看>>