代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
JsonHelper Json转xml,Json转DataSet,DataSet转Json
作者:
炎锋
/ 发布于
2016/1/4
/
957
using System; using System.Collections.Generic; using System.Data; using System.Web.Script.Serialization; using System.Xml; namespace PowerEasy.Software.OrderSyncLibrary.Commom.Helper { /// <summary> /// JSON数据格式转换 /// </summary> public class JsonHelper { /// <summary> /// 将JSON解析成DataSet(只限标准的JSON数据) /// 例如:Json={t1:[{name:'数据name',type:'数据type'}]} 或 Json={t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]} /// </summary> /// <param name="json">Json字符串</param> /// <returns>DataSet</returns> public static DataSet JsonToDataSet(string json) { try { var ds = new DataSet(); var jss = new JavaScriptSerializer(); object obj = jss.DeserializeObject(json); var datajson = (Dictionary<string, object>) obj; foreach (var item in datajson) { var dt = new DataTable(item.Key); var rows = (object[]) item.Value; foreach (object row in rows) { var val = (Dictionary<string, object>) row; DataRow dr = dt.NewRow(); foreach (var sss in val) { if (!dt.Columns.Contains(sss.Key)) { dt.Columns.Add(sss.Key); dr[sss.Key] = sss.Value; } else dr[sss.Key] = sss.Value; } dt.Rows.Add(dr); } ds.Tables.Add(dt); } return ds; } catch { return null; } } /// <summary> /// 将DataSet转化成JSON数据 /// </summary> /// <param name="ds"></param> /// <returns></returns> public static string DataSetToJson(DataSet ds) { string json; try { if (ds.Tables.Count == 0) throw new Exception("DataSet中Tables为0"); json = "{"; for (int i = 0; i < ds.Tables.Count; i++) { json += "T" + (i + 1) + ":["; for (int j = 0; j < ds.Tables[i].Rows.Count; j++) { json += "{"; for (int k = 0; k < ds.Tables[i].Columns.Count; k++) { json += ds.Tables[i].Columns[k].ColumnName + ":'" + ds.Tables[i].Rows[j][k] + "'"; if (k != ds.Tables[i].Columns.Count - 1) json += ","; } json += "}"; if (j != ds.Tables[i].Rows.Count - 1) json += ","; } json += "]"; if (i != ds.Tables.Count - 1) json += ","; } json += "}"; } catch (Exception ex) { throw new Exception(ex.Message); } return json; } /// <summary> /// json字符串转换为Xml对象 /// </summary> /// <param name="sJson"></param> /// <returns></returns> public static XmlDocument JsonToXml(string sJson) { var serializer = new JavaScriptSerializer(); var dic = (Dictionary<string, object>) serializer.DeserializeObject(sJson); var doc = new XmlDocument(); XmlDeclaration xmlDec = doc.CreateXmlDeclaration("1.0", "gb2312", "yes"); doc.InsertBefore(xmlDec, doc.DocumentElement); XmlElement root = doc.CreateElement("root"); doc.AppendChild(root); foreach (var item in dic) { XmlElement element = doc.CreateElement(item.Key); KeyValue2Xml(element, item); root.AppendChild(element); } return doc; } private static void KeyValue2Xml(XmlElement node, KeyValuePair<string, object> source) { object kValue = source.Value; if (kValue.GetType() == typeof (Dictionary<string, object>)) { var dictionary = kValue as Dictionary<string, object>; if (dictionary != null) foreach (var item in dictionary) { if (node.OwnerDocument != null) { XmlElement element = node.OwnerDocument.CreateElement(item.Key); KeyValue2Xml(element, item); node.AppendChild(element); } } } else if (kValue.GetType() == typeof (object[])) { var o = kValue as object[]; if (o != null) foreach (object t in o) { if (node.OwnerDocument != null) { XmlElement xitem = node.OwnerDocument.CreateElement("Item"); var item = new KeyValuePair<string, object>("Item", t); KeyValue2Xml(xitem, item); node.AppendChild(xitem); } } } else { if (node.OwnerDocument != null) { XmlText text = node.OwnerDocument.CreateTextNode(kValue.ToString()); node.AppendChild(text); } } } } }
试试其它关键字
JsonHelper
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
炎锋
贡献的其它代码
(
24
)
.
根据 UserAgent 获取浏览器的类型和版本
.
json转换成list map集合
.
遍历目录 获取文件 全路径
.
写入日志和定时删除日志
.
取一个页面的返回值,保存到一个string变量里
.
现代字体栈
.
获取.net框架的安装目录
.
程序开机启动
.
比较两个对象是否相等
.
创建单例winform应用程序
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3