c#中实现Json功能!
最近需要使用json来与服务器传递信息,所以稍稍了解了一下json。
如果想要在c#中使用json功能,首先我们需要用到Newtonsoft.Json命名空间,可以通过NuGet来安装我们需要的文件。
可以通过在NuGet控制台中输入Install-package Newtonsoft.Json添加文件。
然后引用NewTonSoft.Json命名空间。
然后就是如何将我们建立好的对象转换成json字符串。
我创建了一个student类
class student { public string Name { get; set; } public string classNum { get; set; } public string id { get; set; } }
然后下面将student对象序列化生成json字符串
List<student> students = new List<student>(); students.Add(new student { Name = "zhu", classNum = "1", id = "1" }); students.Add(new student { Name = "yu", classNum = "1", id = "1" }); students.Add(new student { Name = "quan", classNum = "1", id = "1" }); students.Add(new student { Name = "zz", classNum = "1", id = "1" }); students.Add(new student { Name = "Zdd", classNum = "1", id = "1" }); string JsonString = JsonConvert.SerializeObject(students); Console.WriteLine(JsonString); Console.WriteLine();
当我们要生成Json字符串时也可以使用匿名类,不需要单独建立对象。
当然也可以将Json字符串反序列化成student对象
string inputJsonString = @"[ {Name:'zhu',classNum:'1',id:'1'}, {Name:'yu',classNum:'2',id:'2'}, {Name:'quan',classNum:'1',id:'2'} ]"; JArray jsonObj = JArray.Parse(inputJsonString); List<student> objects = new List<student>(); objects = JsonConvert.DeserializeObject<List<student>>(inputJsonString); foreach(student item in objects) { Console.WriteLine("name:{0},classNum:{1},id:{2}", item.Name, item.classNum, item.id); }
我们需要给DeserializeObject<T>添加List<student>让函数返回List<student>对象。