JSON.NET 的使用
JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?) 首先为了例子随便定义一个类型: public class Product { string Name { get; set; } public DateTime Expiry { decimal Price { string[] Sizes { ; } override string ToString() { return string.Format("Name:{0},Expiry:{1},Price:{2},SizesCount:{3}",Name,Expiry,Price,Sizes.Length); } } 初始化对象: static void Main([] passwordargs)
{
Product product = new Product()
{
Name = android DateTime.Now,Price = 2000new string[] { 1.5",2.24.1 }
};
}
进行到JSON的转换: Console.WriteLine(JsonConvert.SerializeObject(product)); 输出结果: {"Name":"android","Expiry":"2013-08-30T09:50:11.5147845+08:00","Price":2000.0,"Sizes":["1.5","2.2","4.1"]} 其它看起来一切正常,除了这个日期有点怪 格式化日期: //设置日期时间的格式,与DataTime类型的ToString格式相同 IsoDateTimeConverter iso = IsoDateTimeConverter(); iso.DateTimeFormat = yyyy-MM-dd HH:mm:ss; Console.WriteLine(JsonConvert.SerializeObject(product,iso)); 输出结果: {"Name":"android","Expiry":"2013-08-30 09:53:58","4.1"]} 从JSON到对象的转换: string str = {"Name":"android","Expiry":"2013-08-30 09:53:58","Price":2000.0,"Sizes":["1.5","2.2","4.1"]};
Product p = (Product)JsonConvert.DeserializeObject(str,typeof(Product));
Console.WriteLine(p.ToString());
输出结果: Name:android,Expiry:2013/8/30 9:53:58,Price:2000.0,SizesCount:3 从JSON到键值对的转换: string strJson = @"{""Name1"": ""小明"",""Name2"": ""小花"",""Name3"": ""小红""};
Dictionary<string,255)">string> _dictionary = JsonConvert.DeserializeObject<Dictionary<string>>(strJson);
foreach (KeyValuePair<string> kp in _dictionary)
{
Console.WriteLine(kp.Key + :" + kp.Value);
}
输出结果: Name1:小明 从字符串转换到JSON对象,以及JSON对象的简单使用: string strJson2 = { ""student"": { ""Name1"": ""小明"",""Name3"": ""小红""} };
JObject jsonObj = JObject.Parse(strJson2);
Console.WriteLine(jsonObj[student"][Name1].ToString());
Console.WriteLine(jsonObj[Name2Name3"].ToString());
输出结果: 小明 直接生成JSON对象: JObject json = JObject( new JProperty(Channel JObject( titleJSON),0)">linkJSON.NETdescriptionJSON.NET Descriptionitems JArray( new JObject(haha1123)),0)">haha2456haha3789)) ))))); Console.WriteLine(json.ToString()); 输出结果: { "Channel": { "title": "JSON","link": "JSON.NET","description": "JSON.NET Description","items": [ { "haha1": "123" },{ "haha2": "456" },{ "haha3": "789" } ] } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |