博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSON转XML
阅读量:6341 次
发布时间:2019-06-22

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

public static XmlDocument Json2Xml(string sJson)

{
//XmlDictionaryReader reader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(sJson), XmlDictionaryReaderQuotas.Max);
//XmlDocument doc = new XmlDocument();
//doc.Load(reader);

JavaScriptSerializer oSerializer = new JavaScriptSerializer();

Dictionary<string, object> Dic = (Dictionary<string, object>)oSerializer.DeserializeObject(sJson);
XmlDocument doc = new XmlDocument();
XmlDeclaration xmlDec;
xmlDec = doc.CreateXmlDeclaration("1.0", "gb2312", "yes");
doc.InsertBefore(xmlDec, doc.DocumentElement);
XmlElement nRoot = doc.CreateElement("root");
doc.AppendChild(nRoot);
foreach (KeyValuePair<string, object> item in Dic)
{
XmlElement element = doc.CreateElement(item.Key);
KeyValue2Xml(element, item);
nRoot.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>))
{
foreach (KeyValuePair<string, object> item in kValue as Dictionary<string, object>)
{
XmlElement element = node.OwnerDocument.CreateElement(item.Key);
KeyValue2Xml(element, item);
node.AppendChild(element);
}
}
else if (kValue.GetType() == typeof(object[]))
{
object[] o = kValue as object[];
for (int i = 0; i < o.Length; i++)
{
XmlElement xitem = node.OwnerDocument.CreateElement("Item");
KeyValuePair<string, object> item = new KeyValuePair<string, object>("Item", o[i]);
KeyValue2Xml(xitem, item);
node.AppendChild(xitem);
}

}

else
{
XmlText text = node.OwnerDocument.CreateTextNode(kValue.ToString());
node.AppendChild(text);
}
}

转载于:https://www.cnblogs.com/xiguanjiandan/archive/2012/10/18/2729516.html

你可能感兴趣的文章
WebCollector 2.x教程列表
查看>>
Linux学习笔记九
查看>>
linux将程序放到后台执行
查看>>
Jar命令使用
查看>>
webdriver+python下拉框的处理方式
查看>>
jquery小片段
查看>>
浏览上传
查看>>
css3之呼吸灯效果
查看>>
为编写网络爬虫程序安装Python3.5
查看>>
我的友情链接
查看>>
java 获取数组长度
查看>>
shell脚本简单实例
查看>>
RHEL / CentOS Bash命令自动完成功能
查看>>
学习Java的几大网站
查看>>
httpclient调用https webservice(rest) 忽略证书
查看>>
visual studio 出现错误SP324098: 您的浏览器无法完成操作。
查看>>
android.database.StaleDataException
查看>>
你对多线程的理解有多少??
查看>>
saltstack的探索-再次改进管理用户的sls文件来更新root用户的密码
查看>>
我的第一个windows live writer 日志
查看>>