JSON.NET框架实现C#对象和JSON字符串的转换

什么是JSON.NET

JSON.NET是一款高性能的JSON转换工具,和其他JSON序列化工具相比性能绝对出色。它由James Newton-Kind开发,你也可以前往他的个人项目主页中获取更多关于JSON.NET的信息:http://james.newtonking.com/json

json的了解,参考: http://www.jb51.cc/article/p-ziqxiorb-zb.html

序列化 JSON(List数据同样适用)
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008,12,28);
product.Sizes = new string[] { "Small" };
 
string json = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",//  "Expiry": "2008-12-28T00:00:00",//  "Sizes": [
//    "Small"
//  ]
//}

反序列化 JSON

string json = @"{
  'Name': 'Bad Boys','ReleaseDate': '1995-4-7T00:00:00','Genres': [
    'Action','Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

List数据处理:

//反序列化JSON字符串,将JSON字符串转换成LIST列表  
List<Customer> _list = JsonConvert.DeserializeObject<List<Customer>>(jsonText);    

LINQ to JSON

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000,5,23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",//     "2000-05-23T00:00:00"
//   ]
// }
Validate JSON
JsonSchema schema = JsonSchema.Parse(@"{
  'type': 'object','properties': {
    'name': {'type':'string'},'hobbies': {'type': 'array'}
  }
}");

JObject person = JObject.Parse(@"{
  'name': 'James','hobbies': ['.NET','LOLCATS']
}");

bool valid = person.IsValid(schema);
// true

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...