亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET中XML轉JSON的方法實例

2024-07-10 13:28:16
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了ASP.NET中XML轉JSON的方法,實例講述了XML轉json的原理與實現過程,具有一定的實用價值,需要的朋友可以參考下
 
 

本文實例講述了ASP.NET中XML轉JSON的方法,分享給大家供大家參考。具體如下:

一般在許多應用程序中都將數據存儲為XML的格式,而且會將數據以JSON的格式發送到客戶端以做進一步處理。要實現這一點,它們必須將XML格式轉換為JSON格式。

XML轉JSON代碼如下:

 

復制代碼代碼如下:
private static string XmlToJSON(XmlDocument xmlDoc)  
{  
    StringBuilder sbJSON = new StringBuilder();  
    sbJSON.Append("{ ");  
    XmlToJSONnode(sbJSON, xmlDoc.DocumentElement, true);  
    sbJSON.Append("}");  
    return sbJSON.ToString();  
}  
  
//  XmlToJSONnode:  Output an XmlElement, possibly as part of a higher array  
private static void XmlToJSONnode(StringBuilder sbJSON, XmlElement node, bool showNodeName)  
{  
    if (showNodeName)  
        sbJSON.Append("//"" + SafeJSON(node.Name) + "//": ");  
    sbJSON.Append("{");  
    // Build a sorted list of key-value pairs  
    //  where   key is case-sensitive nodeName  
    //          value is an ArrayList of string or XmlElement  
    //  so that we know whether the nodeName is an array or not.  
    SortedList childNodeNames = new SortedList();  
  
    //  Add in all node attributes  
    if( node.Attributes!=null)  
        foreach (XmlAttribute attr in node.Attributes)  
            StoreChildNode(childNodeNames,attr.Name,attr.InnerText);  
  
    //  Add in all nodes  
    foreach (XmlNode cnode in node.ChildNodes)  
    {  
        if (cnode is XmlText)  
            StoreChildNode(childNodeNames, "value", cnode.InnerText);  
        else if (cnode is XmlElement)  
            StoreChildNode(childNodeNames, cnode.Name, cnode);  
    }  
  
    // Now output all stored info  
    foreach (string childname in childNodeNames.Keys)  
    {  
        ArrayList alChild = (ArrayList)childNodeNames[childname];  
        if (alChild.Count == 1)  
            OutputNode(childname, alChild[0], sbJSON, true);  
        else  
        {  
            sbJSON.Append(" //"" + SafeJSON(childname) + "//": [ ");  
            foreach (object Child in alChild)  
                OutputNode(childname, Child, sbJSON, false);  
            sbJSON.Remove(sbJSON.Length - 2, 2);  
            sbJSON.Append(" ], ");  
        }  
    }  
    sbJSON.Remove(sbJSON.Length - 2, 2);  
    sbJSON.Append(" }");  
}  
  
//  StoreChildNode: Store data associated with each nodeName  
//                  so that we know whether the nodeName is an array or not.  
private static void StoreChildNode(SortedList childNodeNames, string nodeName, object nodeValue)  
{  
    // Pre-process contraction of XmlElement-s  
    if (nodeValue is XmlElement)  
    {  
        // Convert  <aa></aa> into "aa":null  
        //          <aa>xx</aa> into "aa":"xx"  
        XmlNode cnode = (XmlNode)nodeValue;  
        if( cnode.Attributes.Count == 0)  
        {  
            XmlNodeList children = cnode.ChildNodes;  
            if( children.Count==0)  
                nodeValue = null;  
            else if (children.Count == 1 && (children[0] is XmlText))  
                nodeValue = ((XmlText)(children[0])).InnerText;  
        }  
    }  
    // Add nodeValue to ArrayList associated with each nodeName  
    // If nodeName doesn't exist then add it  
    object oValuesAL = childNodeNames[nodeName];  
    ArrayList ValuesAL;  
    if (oValuesAL == null)  
    {  
        ValuesAL = new ArrayList();  
        childNodeNames[nodeName] = ValuesAL;  
    }  
    else  
        ValuesAL = (ArrayList)oValuesAL;  
    ValuesAL.Add(nodeValue);  
}  
  
private static void OutputNode(string childname, object alChild, StringBuilder sbJSON, bool showNodeName)  
{  
    if (alChild == null)  
    {  
        if (showNodeName)  
            sbJSON.Append("//"" + SafeJSON(childname) + "//": ");  
        sbJSON.Append("null");  
    }  
    else if (alChild is string)  
    {  
        if (showNodeName)  
            sbJSON.Append("//"" + SafeJSON(childname) + "//": ");  
        string sChild = (string)alChild;  
        sChild = sChild.Trim();  
        sbJSON.Append("//"" + SafeJSON(sChild) + "//"");  
    }  
    else  
        XmlToJSONnode(sbJSON, (XmlElement)alChild, showNodeName);  
    sbJSON.Append(", ");  
}  
  
// Make a string safe for JSON  
private static string SafeJSON(string sIn)  
{  
    StringBuilder sbOut = new StringBuilder(sIn.Length);  
    foreach (char ch in sIn)  
    {  
        if (Char.IsControl(ch) || ch == '//'')  
        {  
            int ich = (int)ch;  
            sbOut.Append(@"//u" + ich.ToString("x4"));  
            continue;  
        }  
        else if (ch == '//"' || ch == '////' || ch == '/')  
        {  
            sbOut.Append('////');  
        }  
        sbOut.Append(ch);  
    }  
    return sbOut.ToString();  
}

 

希望本文所述對大家的asp.net程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品偷伦视频免费观看国产| 国产成人综合一区二区三区| 欧美日韩中文在线观看| 蜜臀久久99精品久久久久久宅男| 欧洲午夜精品久久久| 国产成人精品久久亚洲高清不卡| 热久久这里只有精品| 久久久亚洲影院你懂的| 亚洲一区二区三区在线视频| 日韩毛片在线看| 91精品国产777在线观看| 欧美日韩性视频| 久久国产天堂福利天堂| 91亚洲永久免费精品| 成人激情黄色网| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品久久久久久久久久久久| 日韩美女福利视频| 日韩av色在线| 亚洲精品一区久久久久久| 久久精品99久久久久久久久| 九九九久久久久久| 久久久久久久久久亚洲| 国产精品久久久久久av福利软件| 国产精品久久久久久久久影视| 51午夜精品视频| 日韩精品中文字幕在线播放| 国产成+人+综合+亚洲欧洲| 在线看片第一页欧美| 久久亚洲春色中文字幕| 国产啪精品视频网站| 欧美视频精品一区| 久久在线观看视频| 欧美另类极品videosbest最新版本| 在线观看久久久久久| 在线午夜精品自拍| 国产精品国产自产拍高清av水多| 91视频国产精品| www.久久久久久.com| 97在线观看视频| 久久精品视频中文字幕| 久久成人18免费网站| 成人av色在线观看| 96精品视频在线| 深夜福利日韩在线看| 日韩欧美国产骚| 精品无人区乱码1区2区3区在线| 亚洲男人天堂手机在线| 国产99久久精品一区二区永久免费| 精品亚洲国产视频| 亚洲精品小视频在线观看| 欧美精品videosex极品1| 欧美日韩免费看| 国产精品久久久久91| 国产精品视频免费观看www| 欧美国产中文字幕| 这里精品视频免费| 久久综合88中文色鬼| 78m国产成人精品视频| 日韩精品免费在线视频观看| 亚洲精品久久久久久久久久久| 亚洲人高潮女人毛茸茸| 亚洲欧美日韩网| 中文综合在线观看| 日韩美女中文字幕| 国产精品极品美女在线观看免费| 伊人亚洲福利一区二区三区| 久久视频在线直播| 欧美成人第一页| 992tv在线成人免费观看| 日韩成人xxxx| 欧美猛交ⅹxxx乱大交视频| 日韩av在线精品| 日韩精品亚洲精品| 欧美刺激性大交免费视频| 中文字幕九色91在线| 国产在线拍偷自揄拍精品| 日韩av在线网址| 国内精品小视频| 欧美高跟鞋交xxxxxhd| 91国语精品自产拍在线观看性色| 欧美成人免费视频| 91精品国产综合久久久久久蜜臀| 亚洲一区二区在线播放| 欧美日韩激情小视频| 午夜欧美大片免费观看| 欧美日韩国产在线播放| 亚洲韩国欧洲国产日产av| 日韩亚洲欧美成人| 色婷婷综合成人av| 国产精品久久网| 成人网址在线观看| 国产精品免费电影| 欧美性生交大片免网| 久久久久国产视频| 国内精品久久久久久| 91高清视频在线免费观看| 色婷婷综合成人av| 久久精品国产亚洲| 91精品国产综合久久香蕉的用户体验| 亚洲成色999久久网站| 久久青草福利网站| 国产精品青草久久久久福利99| 欧美午夜精品久久久久久人妖| 精品福利免费观看| 欧美日韩国产123| 国内精品美女av在线播放| 亚洲欧洲日韩国产| 日韩av电影手机在线观看| 久久人人爽人人爽爽久久| **欧美日韩vr在线| 国产成人综合精品在线| 国产偷亚洲偷欧美偷精品| 色综合久久精品亚洲国产| 亚洲男人第一av网站| 亚洲美女自拍视频| 欧美韩日一区二区| 欧美日韩免费一区| 91久久久精品| 亚洲欧美制服另类日韩| 亚洲xxxx妇黄裸体| 色无极影院亚洲| 亚洲欧洲av一区二区| 97视频在线观看成人| 97**国产露脸精品国产| 91精品国产91久久久久久不卡| 亚洲国产日韩欧美在线99| 在线观看日韩欧美| 国产在线视频2019最新视频| 97香蕉超级碰碰久久免费软件| 久久久亚洲影院你懂的| 俺去啦;欧美日韩| 成人久久18免费网站图片| 国产精品久久久久久久久免费看| 国产精品久久视频| 日韩美女视频免费在线观看| 国产精品三级在线| 久久久人成影片一区二区三区观看| 国产精品专区第二| 亚洲女性裸体视频| 国产日韩在线一区| 91久久国产精品| 色老头一区二区三区在线观看| 亚洲最大成人在线| 色与欲影视天天看综合网| 久久久久久91| 欧美放荡办公室videos4k| 免费av在线一区| 91手机视频在线观看| 91免费看国产| 91精品国产高清久久久久久久久| 欧美日韩精品国产| 永久555www成人免费| 好吊成人免视频| 久久久久久综合网天天| 欧美高清视频在线播放| 性欧美暴力猛交69hd| 午夜精品一区二区三区在线视| 日本高清+成人网在线观看| 欧美日韩国产丝袜美女| 欧美激情精品久久久久久黑人| 国产精品99久久久久久www| 国产精品稀缺呦系列在线| 97色在线视频|