博客
关于我
.Net Core API的一个Json转换Help类
阅读量:645 次
发布时间: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/

你可能感兴趣的文章
ubuntu 16.04 镜像下载
查看>>
CUDA9.1、cuDNN7在Ubuntu16.04上的安装
查看>>
解决“预编译器错误:代码使用了scss/sass语言,但未安装相应编译器,请在菜单工具-插件安装里安装相应编译插件”
查看>>
微信小程序云开发:怎么删除云函数?已解决
查看>>
解决微信小程序项目导入的问题:app.json 未找到、 __wxConfig is not defined
查看>>
什么是句柄(经典)
查看>>
非迅捷|PDF、Word、PPT、Excel、图片等互相在线转换:免费、简单、快速、零错误、无套路
查看>>
第一次被黑
查看>>
PyCharm配置anaconda环境
查看>>
修改linux 系统自带日志系统systemd-journald && 参数
查看>>
Redis工具类
查看>>
SpringBoot与缓存(JSR-107、Spring缓存抽象)
查看>>
ERROR 总结
查看>>
C语言—— 符号函数
查看>>
钞票最优解
查看>>
查找最小值栈的O(1)
查看>>
淘宝天猫双十一养猫组队怎么踢人
查看>>
Java面试题整理,闭关在家37天“吃透”这份345页PDF,纯干货
查看>>
概念唱片Plastic Beach封面高清壁纸
查看>>
旅游后期效果Ography Lightroom预设
查看>>