Xml与Json互相转


先说一句,Newtonsoft.Json真的太强大了,非常巴适。
1、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>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);

string jsonstr = JsonConvert.SerializeXmlNode(doc);
Console.WriteLine(jsonstr);
=====================输出=========================
{
    "?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"
            }
        ]
    }
}

2、Json转成Xml

JObject jo = new JObject();
jo.Add("appid", "wx2421b1c4370ec43b");
jo.Add("attach", "zhifuceshi");

//需要注意的是一定要给xml指定根结点,否则会抛出JSON root object has multiple properties.异常
XmlDocument doc1 = JsonConvert.DeserializeXmlNode(jo.ToString(), "xml");

Console.WriteLine(doc1.OuterXml);
=====================输出=========================
<root>
  <appid>wx2421b1c4370ec43b</appid>
  <attach>zhifuceshi</attach>
</root>
posted @ 2017-03-14 17:43  xuxuzhaozhao  阅读(863)  评论(0编辑  收藏  举报