JSON.NET 简单的使用
来源:互联网 发布:mysql爆破 编辑:程序博客网 时间:2024/05/18 00:22
JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)
首先为了例子随便定义一个类型:
public class Product{ public string Name { get; set; } public DateTime Expiry { get; set; } public decimal Price { get; set; } public string[] Sizes { get; set; } public override string ToString() { return string.Format("Name:{0},Expiry:{1},Price:{2},SizesCount:{3}" , Name, Expiry, Price, Sizes.Length); }}
初始化对象:
public static void Main(string[] passwordargs){ Product product = new Product() { Name = "android", Expiry = DateTime.Now, Price = 2000, Sizes = new string[] { "1.5", "2.2", "4.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 = new IsoDateTimeConverter();iso.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";Console.WriteLine(JsonConvert.SerializeObject(product, iso));
输出结果:
{"Name":"android","Expiry":"2013-08-30 09:53:58","Price":2000.0,"Sizes":["1.5","2.2","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, string> _dictionary = JsonConvert.DeserializeObject<Dictionary<string, string>>(strJson);foreach (KeyValuePair<string, string> kp in _dictionary){ Console.WriteLine(kp.Key + ":" + kp.Value);}
输出结果:
Name1:小明
Name2:小花
Name3:小红
从字符串转换到JSON对象,以及JSON对象的简单使用:
string strJson2 = @"{ ""student"": { ""Name1"": ""小明"" , ""Name2"": ""小花"" , ""Name3"": ""小红""} }";JObject jsonObj = JObject.Parse(strJson2);Console.WriteLine(jsonObj["student"]["Name1"].ToString());Console.WriteLine(jsonObj["student"]["Name2"].ToString());Console.WriteLine(jsonObj["student"]["Name3"].ToString());
输出结果:
小明
小花
小红
直接生成JSON对象:
JObject json = new JObject( new JProperty("Channel", new JObject( new JProperty("title", "JSON"), new JProperty("link", "JSON.NET"), new JProperty("description", "JSON.NET Description"), new JProperty("items", new JArray( new JObject(new JProperty("haha1", "123")), new JObject(new JProperty("haha2", "456")), new JObject(new JProperty("haha3", "789")) )))));Console.WriteLine(json.ToString());
输出结果:
{
"Channel": {
"title": "JSON",
"link": "JSON.NET",
"description": "JSON.NET Description",
"items": [
{
"haha1": "123"
},
{
"haha2": "456"
},
{
"haha3": "789"
}
]
}
}
暂时先记录这么多,以后再继续补充
- Json.net的简单使用
- JSON.NET 简单的使用
- JSON.NET 简单的使用
- JSON.NET 简单的使用
- JSON.NET 简单的使用
- JSON.NET 简单的使用
- JSON.NET使用简单说明
- json.net的使用
- JSON.NET 的使用
- Json.NET的简单介绍
- json的简单使用
- JSON的简单使用
- Json的简单使用
- JSON的简单使用
- json的简单使用
- Json的简单使用
- JSON的简单使用
- net.sf.json的使用
- UI一揽子计划 16 (网络编程、HTTP协议、iOS 实现网络编程、服务器接口)
- NsDate
- 使用python进行文本分类
- iOS9适配
- 面试官有问题?我看是你有问题吧!
- JSON.NET 简单的使用
- UI一揽子计划 17 (image的异步加载、KVO观察者模式、KVO进行豆瓣列表界面图片的异步加载)
- 开发者如何演示App功能给客户
- App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Te
- Ubuntu 14.04 LTS下安装Google Chrome浏览器
- Servlet学习
- hibernate 的缓存机制?
- scala入门测试
- UI一揽子计划 18 (沙盒机制、简单对象写入文件、NSFileMange、复杂对象写入文件)