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);
}