前辈们,我又来了,感觉自己总拿现成的东西,有点羞耻...
比如[{"name":"12333","age":"10","length":15},{"name":"23333","age":"8","length":12}]
想转换成class student{
string name{set;get;}
int age{set;get;}
int length{set;get;}
}
这样的对象 student1和student2
该怎么做呢
解决的思路是什么?
(顺便问一个题外话,类似的问题该如何怎样学习去自己解决,需要学习什么呢)
(同学刚给我发了一个第三方库,还没测试,还是想听一下前辈的看法)
这个过程叫反序列化,那么具体是什么反序列化就要看你的序列化后的信息是什么样的,比如你的就是json格式的,那么你就json反序列化咯,反序列化了后肯定是要放到某个对象里面的吧,这里再看你的json,它是一个student的数组,那么你就巴拉一个数组出来存放反序列化后的结果即可。
List<Student> students=.....Deserialize(yourRawStringHere);
其实我感兴趣的是为啥你的园豆是负数的。。。。。
咦?应该还剩四个的啊。。。怎么会是负的嘞。
我可以把json字符串反序列化生成一个载有想要信息的对象(相当于一个student)
但是想生成两个该怎么办呢。。。。把一串json格式的字符串生成两个以上的对象。。。
@1153710305: 所以你反序列化后应该是个student的集合啊。
@Daniel Cai: 是不是必须序列化的集合才能反序列化啊
@猝不及防:没看明白。
var jsonString=[{"name":"12333","age":"10","length":15},{"name":"23333","age":"8","length":12}];
var students= JsonConvert.DeserializeObject<List<Student>>(jsonString)
我们都用第三方库直接转
你去Nuget上面能看到下载量第一的包就是序列化json的。
Newtonsoft.Json
通过 Nuget 使用 Newtonsoft.Json 类库进行反序列化,因为你给出的字符串就是 json 格式,使用 JsonConvert.DeserializeObject() 方法即可。
代码如下:
using Newtonsoft.Json; using System; using System.Collections.Generic; namespace CompressDemo { class Program { static void Main(string[] args) { const string source = "[{'name':'12333','age':'10','length':15},{'name':'23333','age':'8','length':12}]"; var students = JsonConvert.DeserializeObject<List<Student>>(source); foreach (var student in students) { Console.WriteLine($"Name: {student.Name}, Age: {student.Age}, Length:{student.Length}"); } Console.Read(); } } class Student { public string Name { set; get; } public int Age { set; get; } public int Length { set; get; } } }