C# XML与Json之间的相互转换
前言
对于这转换其实很简单,其中最重要的就是先要引用类库。可以到官网进行下载引用http://json.codeplex.com。
前两天学习了Jquery ajax提交Json后台处理文章链接为http://www.cnblogs.com/aehyok/archive/2013/05/18/3085499.html
XML转换为Json字符串
string xml = @"<?xml version=""1.0"" standalone=""no""?> <root> <person id=""1""> <name>Alan</name> <url>http://www.google.com</url> </person> <person id=""2""> <name>Louis</name> <url>http://www.yahoo.com</url> </person> </root>";
这是在代码中预定义的一个xml字符串。
XmlDocument doc = new XmlDocument(); doc.LoadXml(xml);
然后将xml字符串读入到XML文档。
string jsonText = JsonConvert.SerializeXmlNode(doc); Console.WriteLine(jsonText);
然后通过Json.Net类库中专有的方法进行转换即可
运行结果为:
Json字符串转换为XML
第一种格式的Json字符串
string json = @"{ ""?xml"": { ""@version"": ""1.0"", ""@standalone"": ""no"" }, ""root"": { ""person"": [ { ""@id"": ""1"", ""name"": ""Alan"", ""url"": ""http://www.google.com"" }, { ""@id"": ""2"", ""name"": ""Louis"", ""url"": ""http://www.yahoo.com"" } ] } }";
预定义的Json字符串如上
同理调用Json.Net类库中的方法
XmlDocument doc1 = JsonConvert.DeserializeXmlNode(json);
Console.WriteLine(doc1.OuterXml);
第二种格式的Json字符串
string json_str = "{\"a\":\"a\",\"b\":\"b\"}"; string json1 = @"{ ""?xml"": { ""@version"": ""1.0"", ""@standalone"": ""no"" }, ""root"":" + json_str + "}";
同理进行调用
XmlDocument doc2 = JsonConvert.DeserializeXmlNode(json1);
Console.WriteLine(doc2.OuterXml);
结果为
总结
调用很简单,只要将传递的XML或者Json字符串格式搞正确,那么得到想要的结果就不难。代码可以直接Copy调用。