十一啊十一快乐!小贱从杭州萧山国际机场发来贺电!最近又重回学东西,做项目,学东西...的循环里。脑子就是浆糊啊浆糊~但是还是要继续给大家写博哦。又是一堆屁话,回正题,上次真是脑子抽了,写的关于Newtonsoft.Json的用法应该从比较形象的类转化开始写,让人先了解下。所以 这次的内容补上。
1.Json字符串转成对应类
下面我给出的例子:Json的内容是描述Employee的firstName和lastName
using Newtonsoft.Json; // Newtonsoft.Json引用
public class Employee // 根据JSON数据的信息定义一个类,用来存储信息 { public string firstName; 这两个就是对每个Employee的描述了 public string lastName; }
static void Main(string[] args) { string json = "[{\"firstName\": \"John\",\"lastName\": \"Doe\"},{\"firstName\": \"Anna\",\"lastName\": \"Smith\"},{\"firstName\": \"Peter\",\"lastName\": \"Jones\"}]"; // 定义一个JSON字符串 List<Employee> list = new List<Employee>(); // 因为JSON中会有不止一个的Employee,所以我们用一个集合来存储 list = JsonConvert.DeserializeObject<List<Employee>>(json); // 这里JsonConvert会很智能的将JSON中的属性转换为类的属性 foreach (Employee child in list) // 将每一个Employee的firstName和lastName打印出来 { Console.WriteLine(child.firstName); Console.WriteLine(child.lastName); } Console.ReadKey(); // 保证命令行窗口不消失 }
* JsonConvert.DeserializeObject<List<Type>>(string json) Type是输出值的类型,json是我们需要转化的Json字符串
2.类转成Json字符串
这正好与上面相反,我们要将每个Employee以组的形式在Json字符串中表现出来,Employee的描述自然就是组中的属性了
static void Main(string[] args) { #region 这一部分就是前面讲的将JSON转成一个类的集合,这里为了方便,就直接作为要转成JSON的内容了 string json = "[{\"firstName\": \"John\",\"lastName\": \"Doe\"},{\"firstName\": \"Anna\",\"lastName\": \"Smith\"},{\"firstName\": \"Peter\",\"lastName\": \"Jones\"}]"; List<Employee> list = new List<Employee>(); list = JsonConvert.DeserializeObject<List<Employee>>(json); foreach (Employee child in list) { Console.WriteLine(child.firstName); Console.WriteLine(child.lastName); } #endregion string lastJson = JsonConvert.SerializeObject(list); //这一步就是将一个类的集合转成JSON格式的字符串 Console.WriteLine(lastJson); Console.ReadKey(); // 保证命令行窗口不消失 }
今天说的能是上次的补充内容,我们要知道Newtonsoft.Json不仅仅只是处理Json与XML之间的转化,它还可以处理很多的类型。现在我们可以将Json字符串中的内容之间变成类的字段/属性的内容,那在项目中处理Json数据变得更加的方便了!
这次的内容先这么多,待续哦~