我们用到的类库为:Newtonsoft.Json,通过VS工具中NuGet程序包可以下载。
一:对象转json-序列化
publicclassStudent
{publicintID {get;set; }publicstringName {get;set; }publicintAge {get;set; }
}//第一种:单一实体类Student s =newStudent();
s.Age=18;
s.ID=1;
s.Name="张三";stringjson = Newtonsoft.Json.javaScriptConvert.SerializeObject(s);//序列化对象(对象转json)//第二种:List<T>泛型 和上边方法相同List<Student> list =newList<Student>();for(inti =1; i <5; i++)
{
Student stu=newStudent();
stu.Age= i +12;
stu.ID=i;
stu.Name="No."+i.ToString();
list.Add(stu);
}
json= Newtonsoft.Json.JavascriptConvert.SerializeObject(list);
二:json转对象 - 反序列化
//json只有一条数据JavaScriptObject obj =(JavaScriptObject)JavaScriptConvert.DeserializeObject(json);stringName = obj["Name"].ToString();//取出某一字段Response.Write(Name);//json只有一条数据Student ms = (Student)JavaScriptConvert.DeserializeObject(JavaScriptConvert.SerializeObject(obj),typeof(Student));//json转对象Response.Write(ms.Name);//json有多条数据JavaScriptArray javascript =(JavaScriptArray)JavaScriptConvert.DeserializeObject(json);
List<Student> slist =newList<Student>();for(inti =0; i < javascript.Count; i++)
{
JavaScriptObject temp=(JavaScriptObject)javascript[i];
Student model= (Student)JavaScriptConvert.DeserializeObject(JavaScriptConvert.SerializeObject(temp),typeof(Student));
slist.Add(model);
}
//4.0方法
List<Student>slist= JsonConvert.DeserializeObject<List<Student>>(json);
Response.Write(slist[0].Name);