JsonHelper Json转xml,Json转DataSet,DataSet转Json
2019独角兽企业重金招聘Python工程师标准>>>
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;}elsedr[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);}}}}
}
转载于:https://my.oschina.net/zhangqs008/blog/200250
JsonHelper Json转xml,Json转DataSet,DataSet转Json相关推荐
- php json 转 xml格式,PHP中如何将JSON文件转XML格式
首先获取JSON文件中的字符:$content = file_get_contents('./data.json'); 然后使用函数"json_decode()"函数将字符串转为数 ...
- java json转换xml格式_在Java中将JSON对象转换为XML格式?
JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...
- JSON和XML:它们如何比较?
JSON和XML:它们如何比较? JSON和XML是两种人类可读的文本格式,多年来已成为竞争对手. XML的目的是通过可选使用模式来存储和定义文档和数据. JSON几乎与之完全相反-序列化格式的要求非 ...
- json vs xml
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> ...
- JSON与XML的选择
前言 最近一个项目忙死了,因为负责人掉链子,现在全公司累死了. OVER 基于JSON与XML的特性,个人认为JSON用来网络传递文本数据比较好,传输快,解析速度也快,这是XML比不了的,但如果是大量 ...
- dict 转换成json_Python XML转换为JSON,XML转换为Dict
dict 转换成json Today we will learn how to convert XML to JSON and XML to Dict in python. We can use py ...
- JSON和XML的区别
JSON和XML之间的区别是什么?下面本篇文章就来给大家比较一下JSON和XML,介绍JSON和XML之间的区别,希望对大家有所帮助. JSON(JavaScript Object Notation) ...
- 在线JSON转XML工具
在线JSON转XML工具 [在线JSON转XML工具(https://toolgg.com/json-to-xml.html) JSON To XML Converter 帮助你在线将 JSON 转换 ...
- python中JSON转XML文件
python中JSON转XML文件 # 接收前台给的json数据 jsonData = json.loads(request.POST.get("jsonData")); # 接收 ...
最新文章
- 分布式架构的对比-EMC VMAX
- swift写的摇骰子程序,开源了
- python数据帧_Python数据帧
- Excel:解决Excel表格每一行所有字段在一个单元格的情况
- html表单实验总结,HTML表单总结
- ElasticSearch wildcard查询(英文检索)
- java练手小程序_Java小程序练习
- DM6437定时器使用
- 本周大新闻|PS VR2已确认20款大作,Magic Leap 1低价清库存
- STA之RC Corner
- .NET周报【11月第1期 2022-11-07】
- Codeforces-1682B: AND Sorting 【构造、排序、位运算】
- SCCM通过PXE部署系统蓝屏Recovery
- 洛谷P2689 东南西北
- AndroidStudio 实现用户登录注册
- 天猫直通车的相关定义
- 基于ssm的进销存系统
- 网络文件共享服务 - Samba详解
- Redis常用命令入门4:集合类型
- markdown 编辑器实现双屏同步滚动
热门文章
- springmvc国际化 基于请求的国际化配置
- CodeFights Python 编程实训
- 【个人网站搭建教程】阿里云服务器+宝塔+wordpress
- 数据结构笔记(七)-- 顺序栈
- rsort php,php中rsort函数实例用法
- mac模式怎样构造在jsp中_在MAC下搭建JSP开发环境
- currenthashmap扩容原理_HashMap 深入解析(二)
- asp.net 抓取html内容,c# – 如何从ASP.NET获取网页的HTML内容
- OpenCV图像处理基础(变换和去噪)
- tp801单板微型计算机是什么,给TP801单板机配接RX—80打印机