精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

ASP.NET中XML轉換為JSON,JSON轉換為XML的方法

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   into "aa":null
//          xx 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();
}

 

 

 

JSON格式轉換為XML格式

 

 

/**//// 
/// 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 Dic = (Dictionary)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 item in Dic)
{
XmlElement element = doc.CreateElement(item.Key);
KeyValue2Xml(element, item);
nRoot.AppendChild(element);
}
return doc;
}
private static void KeyValue2Xml(XmlElement node, KeyValuePair Source)
{
object kValue = Source.Value;
if (kValue.GetType() == typeof(Dictionary))
{
foreach (KeyValuePair item in kValue as Dictionary)
{
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 item = new KeyValuePair("Item", o[i]);
KeyValue2Xml(xitem, item);
node.AppendChild(xitem);
}
}
else
{
XmlText text = node.OwnerDocument.CreateTextNode(kValue.ToString());
node.AppendChild(text);
}
}

 

 

 

參考資料:    ASP.NET中XML和JSON互轉     http://www.studyofnet.com/news/298.html

 


當前名稱:ASP.NET中XML轉換為JSON,JSON轉換為XML的方法
鏈接URL:http://m.jcarcd.cn/article/iejosp.html
主站蜘蛛池模板: 国产精品天天看 | 中文字幕乱倫视频 | 精品网站不卡 | 国产网红福| 三区视频网站 | 伦理电影在线观看 | 91新视频| 精品国精品国产国产 | 国产亚洲精品无 | 91中文字幕 | 精品免费一区二区 | 玖玖爱电影韩国午夜 | 日韩视频中文字幕 | 乱老熟女一区二 | 91最新欧美日韩 | 精品国产一二区 | 国产精品人 | 精品视频在线三区 | 欧美日韩自 | 日产乱码一区二区 | 日韩中文字幕在 | 欧洲女人牲 | 日本午夜电影网 | 日本一道综 | 国产精国产精品 | 国产精品第十页 | 国产一线二线三线 | 动漫一区二区三区 | 区二区三区新线路 | 成人动漫一区二区三 | 欧洲无毛性XXXX | 福利社午夜影院 | 成人激情受网点 | 日本aⅴ网站 | 日本极品美女抽插 | 日韩视频在线播放 | 成人影院在线观看 | 99福利导航 | 99热在线只有精品 | 加勒比色 | 精品国产欧美一 |