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相关推荐

  1. php json 转 xml格式,PHP中如何将JSON文件转XML格式

    首先获取JSON文件中的字符:$content = file_get_contents('./data.json'); 然后使用函数"json_decode()"函数将字符串转为数 ...

  2. java json转换xml格式_在Java中将JSON对象转换为XML格式?

    JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...

  3. JSON和XML:它们如何比较?

    JSON和XML:它们如何比较? JSON和XML是两种人类可读的文本格式,多年来已成为竞争对手. XML的目的是通过可选使用模式来存储和定义文档和数据. JSON几乎与之完全相反-序列化格式的要求非 ...

  4. json vs xml

    < DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> ...

  5. JSON与XML的选择

    前言 最近一个项目忙死了,因为负责人掉链子,现在全公司累死了. OVER 基于JSON与XML的特性,个人认为JSON用来网络传递文本数据比较好,传输快,解析速度也快,这是XML比不了的,但如果是大量 ...

  6. 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 ...

  7. JSON和XML的区别

    JSON和XML之间的区别是什么?下面本篇文章就来给大家比较一下JSON和XML,介绍JSON和XML之间的区别,希望对大家有所帮助. JSON(JavaScript Object Notation) ...

  8. 在线JSON转XML工具

    在线JSON转XML工具 [在线JSON转XML工具(https://toolgg.com/json-to-xml.html) JSON To XML Converter 帮助你在线将 JSON 转换 ...

  9. python中JSON转XML文件

    python中JSON转XML文件 # 接收前台给的json数据 jsonData = json.loads(request.POST.get("jsonData")); # 接收 ...

最新文章

  1. 分布式架构的对比-EMC VMAX
  2. swift写的摇骰子程序,开源了
  3. python数据帧_Python数据帧
  4. Excel:解决Excel表格每一行所有字段在一个单元格的情况
  5. html表单实验总结,HTML表单总结
  6. ElasticSearch wildcard查询(英文检索)
  7. java练手小程序_Java小程序练习
  8. DM6437定时器使用
  9. 本周大新闻|PS VR2已确认20款大作,Magic Leap 1低价清库存
  10. STA之RC Corner
  11. .NET周报【11月第1期 2022-11-07】
  12. Codeforces-1682B: AND Sorting 【构造、排序、位运算】
  13. SCCM通过PXE部署系统蓝屏Recovery
  14. 洛谷P2689 东南西北
  15. AndroidStudio 实现用户登录注册
  16. 天猫直通车的相关定义
  17. 基于ssm的进销存系统
  18. 网络文件共享服务 - Samba详解
  19. Redis常用命令入门4:集合类型
  20. markdown 编辑器实现双屏同步滚动

热门文章

  1. springmvc国际化 基于请求的国际化配置
  2. CodeFights Python 编程实训
  3. 【个人网站搭建教程】阿里云服务器+宝塔+wordpress
  4. 数据结构笔记(七)-- 顺序栈
  5. rsort php,php中rsort函数实例用法
  6. mac模式怎样构造在jsp中_在MAC下搭建JSP开发环境
  7. currenthashmap扩容原理_HashMap 深入解析(二)
  8. asp.net 抓取html内容,c# – 如何从ASP.NET获取网页的HTML内容
  9. OpenCV图像处理基础(变换和去噪)
  10. tp801单板微型计算机是什么,给TP801单板机配接RX—80打印机