Newtonsoft.Json.dll反序列化JSON字符串的方法
1.直接反序列化JSON字符串
//引用序列化、反序列化JSON字符串用到的空间 using Newtonsoft.Json; using Newtonsoft.Json.Linq; //定义一个JSON字符串 string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]"; //反序列化JSON字符串 JArray ja =(JArray) JsonConvert.DeserializeObject(jsonText); //将反序列化的JSON字符串转换成对象 JObject o = (JObject)ja[1]; //读取对象中的各项值 Console.WriteLine(o["a"]); Console.WriteLine(ja[1]["a"]);
2.定义对象列表,然后反序列化JSON字符串
2.1 添加一个类,定义一个对象
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> ///Customer 的摘要说明 /// </summary> public class Customer { //在序列化前后没有变动 public string a { get; set; } //在序列化前后设置和重置 public string b { get; set; } //设置为null,但在序列化后填充 public string c { get; set; } public string Other { get; set; } public Customer() { // //TODO: 在此处添加构造函数逻辑 // a = ""; b = ""; c = ""; Other = null; } }
2.2 反序列化JSON字符串
//引用序列化、反序列化JSON字符串用到的空间 using Newtonsoft.Json; using Newtonsoft.Json.Linq; //定义一个JSON字符串 string jsonText = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aaa2','b':'bbb2','c':'ccc2'}]"; //反序列化JSON字符串,将JSON字符串转换成LIST列表 List<Customer> _list = JsonConvert.DeserializeObject<List<Customer>>(jsonText); //读取列表中的值 Console.WriteLine(_list[1].a); foreach (Customer c in _list) { Console.WriteLine(c.c); }