zoukankan      html  css  js  c++  java
  • JSON转XML

    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);
    }
    }

  • 相关阅读:
    Java类、实例初始化的顺序
    Java中堆栈的区别
    int与Integer的区别(基本类型与复杂类型的对比)转
    JS中函数执行顺序的问题?
    springMVC --@RequestParam注解(后台控制器获取参数)
    如何安装request库
    流程图
    认识broken pipe
    postman动态使用url
    自定义一个List排序规则,然后对另一个List按照该规则排序
  • 原文地址:https://www.cnblogs.com/xiguanjiandan/p/2729516.html
Copyright © 2011-2022 走看看