C#中使用JSON.NET实现JSON、XML相互转换
官方JSON.NET地址
http://james.newtonking.com/pages/json-net.aspx
XMLTOJSON
stringxml=@"<?xmlversion=""1.0""standalone=""no""?> <root> <personid=""1""> <name>Alan</name> <url>http://www.google.com</url> </person> <personid=""2""> <name>Louis</name> <url>http://www.yahoo.com</url> </person> </root>"; XmlDocumentdoc=newXmlDocument(); doc.LoadXml(xml); stringjsonText=JsonConvert.SerializeXmlNode(doc); //{ //"?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" //} //] //} //}
JSONTOXML
stringjson=@"{ ""?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"" } ] } }"; XmlDocumentdoc=(XmlDocument)JsonConvert.DeserializeXmlNode(json); //<?xmlversion="1.0"standalone="no"?> //<root> //<personid="1"> //<name>Alan</name> //<url>http://www.google.com</url> //</person> //<personid="2"> //<name>Louis</name> //<url>http://www.yahoo.com</url> //</person> //</root>
DEMO:JSONTOXML
stringjson_str="{\"a\":\"a\",\"b\":\"b\"}"; //json的字符串需要按照这个格式书写,否则会报错 stringjson=@"{ ""?xml"":{ ""@version"":""1.0"", ""@standalone"":""no"" }, ""root"":"+json_str+"}"; if(!string.IsNullOrEmpty(json)) { XmlDocumentdoc=JsonConvert.DeserializeXmlNode(json); }