Newtonsoft.Json在json和对象之间转化是一个非常强大的工具。
对象转化json字符串
Newtonsoft.Json.JsonConvert.SerializeObject()
json字符串转化为指定对象
Newtonsoft.Json.JsonConvert.DeserializeObject<>()
json字符串直接获取指定元素值(类似XML)
var jObject=JObject.Parse(jsonstring); var time= jObject["time"].ToString();//获取time{"time":"2016-06-06 11:11:11"}
xml转换json字符串
XmlDocument doc = new XmlDocument(); doc.LoadXml(PostBackXml); var jObject = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);//Xml转json
当上面的XML在序列化是通常会出现根目录,根目录内出现的才是需要序列化的对象元素。
不妨先转换为JObject,像下面这样使用jobj["MongoTask"]转换
var json=JsonConvert.SerializeXmlNode(item); var jobj = JsonConvert.DeserializeObject<JObject>(json); tasklist.Add(jobj["MongoTask"].ToObject<MongoTask>());
如果需要获取XML中属性的值,比如获取<user name='张三'>获取张三时name属相带有@符号
代码中过滤到@符号就可以正常取值
var jobj = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jObject.Replace("@","")); var name= jobj["Response"]["Body"]["OrderResponse"]["name"];