如题,我就不多说了,自己看代码的,很好理解
using System;using System.Collections.Generic;using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Text; using System.Web.Script.Serialization; using System.Runtime.Serialization.Json; ////// json反序列化对象 /// public class Nature { public string name { get; set; }//属性编号 public string sex { get; set; } //分类编号 } ////// json反序列化对象 /// public class Person { public string name { get; set; }//属性编号 public string sex { get; set; } //分类编号 public string age { get; set; } //分类编号 public string tel { get; set; } //分类编号 } public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //复杂的json解析 String json = "[{\"name\":\"zhangsan\",\"sex\":\"男\"},{\"name\":\"李四\",\"sex\":\"男\"},{\"name\":\"张娟\",\"sex\":\"女\"},{\"name\":\"慧娟\",\"sex\":\"女\"}]"; Listnt = Deserialize
>(json); if (nt != null && nt.Count > 0) { Response.Write("复杂的json反序列化: "); foreach (Nature dt in nt)//打印集合中的元素 { Response.Write(dt.name+" "); } } //简单的json解析 String json1 = "{\"name\":\"张三\",\"sex\":\"男\",\"age\":\"25\",\"tel\":\"1301554XXXX\"}"; JavaScriptSerializer js = new JavaScriptSerializer(); Person pe = js.Deserialize (json1); Response.Write(" 简单的json反序列化:" + pe.name); Response.Write(" 序列化操作
"); Response.Write("复杂对象序列化
"); Listlist = new List () { new Nature(){ name="张三", sex="男"}, new Nature(){ name="慧娟", sex="女"} }; string jsonTxt = JsonSerializer
>(list); Response.Write(jsonTxt); Response.Write(" 简单对象序列化
"); Person pes = new Person(); pes.name = "姐姐"; pes.sex = "女"; pes.tel = "1301554XXXX"; pes.age = "23"; string json1Txt = JsonSerializer(pes); Response.Write(json1Txt); } /// /// 反序列化json数组 /// ///对象 /// json数组 ///public T Deserialize (string json) { T obj = Activator.CreateInstance (); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } } /// /// 序列化对象为json /// ///类型 /// 对象 ///public string JsonSerializer (T t) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream ms = new MemoryStream(); ser.WriteObject(ms, t); string jsonString = Encoding.UTF8.GetString(ms.ToArray()); ms.Close(); return jsonString; } }
源码: