/// <summary> /// 序列 /// </summary> /// <typeparam name="T">對象類</typeparam> /// <param name="t">類對象</param> /// <returns>JSON字符串</returns> public static string JsonSerializer<T>(T t) { // 將對象序列化為 javaScript 對象表示法 (JSON),并將 JSON 數(shù)據(jù)反序列化為對象。 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); // 創(chuàng)建其支持存儲區(qū)為內(nèi)存的流 MemoryStream ms = new MemoryStream(); // 將指定對象序列化為 Javascript 對象表示法 (JSON) 數(shù)據(jù),并將生成的 JSON 寫入流中 ser.WriteObject(ms, t); // 寫入字節(jié)數(shù)組轉(zhuǎn)換字符串 string tojson = Encoding.UTF8.GetString(ms.ToArray()); // 關(guān)閉流 ms.Close(); // 返回JSON字符 return tojson; } /// <summary> /// 反序列化 /// </summary> /// <typeparam name="T">對象類</typeparam> /// <param name="strJson">要反序列的JSON字符串</param> /// <returns>返回對象</returns> public static T JsonDeserializer<T>(string strJson) { // 將對象序列化為 JavaScript 對象表示法 (JSON),并將 JSON 數(shù)據(jù)反序列化為對象 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); // 創(chuàng)建其支持存儲區(qū)為內(nèi)存的流 MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson)); // 以 JSON(JavaScript 對象表示法)格式讀取文檔流,并返回反序列化的對象。 T obj = (T)ser.ReadObject(ms); // 返回 return obj; } /* * 調(diào)用方法: */ PRivate void button1_Click(object sender, EventArgs e) { student s = new student(); List<student> stu = new List<student>(); s.age = 11; s.height = 12; s.weight = 10; s.name = "tao"; stu.Add(s); student s2 = new student(); s2.age = 21; s2.height = 22; s2.weight = 20; s2.name = "jian"; stu.Add(s2); string json = JsonHelper.JsonSerializer < List<student>>(stu); listBox1.Items.Add(json); textBox1.Text = json; } private void button2_Click(object sender, EventArgs e) { List<student> s = JsonHelper.JsonDeserializer<List<student>>(textBox1.Text); listBox1.Items.Add(s[0].name); } private void button4_Click(object sender, EventArgs e) { student s = new student(); s.age = 11; s.height = 12; s.weight = 10; s.name = "tao222"; string json = JsonHelper.JsonSerializer<student>(s); listBox1.Items.Add(json); textBox1.Text = json; } private void button5_Click(object sender, EventArgs e) { student s = JsonHelper.JsonDeserializer<student>(textBox1.Text); listBox1.Items.Add(s.name); } private void button3_Click(object sender, EventArgs e) { DataTable dt = getDataTable(); string json = JsonHelper.JsonSerializer(dt); listBox1.Items.Add(json); textBox1.Text = json; } private void button6_Click(object sender, EventArgs e) { DataTable dt = JsonHelper.JsonDeserializer<DataTable>(textBox1.Text); listBox1.Items.Add(dt.Rows[0]["name"]); }
第三方下載連接:http://download.csdn.net/detail/xinping_168/4710720
private void button1_Click(object sender, EventArgs e) { student s = new student(); List<student> stu = new List<student>(); s.age = 11; s.height = 12; s.weight = 10; s.name = "tao"; stu.Add(s); student s2 = new student(); s2.age = 21; s2.height = 22; s2.weight = 20; s2.name = "jian"; stu.Add(s2); string json = JsonConvert.SerializeObject(stu); listBox1.Items.Add(json); textBox1.Text = json; } private void button2_Click(object sender, EventArgs e) { List<student> s = JsonConvert.DeserializeObject<List<student>>(textBox1.Text); listBox1.Items.Add(s[0].name); } private void button3_Click(object sender, EventArgs e) { student s = new student(); s.age = 11; s.height = 12; s.weight = 10; s.name = "tao"; string json = JsonConvert.SerializeObject(s); listBox1.Items.Add(json); textBox1.Text = json; } private void button4_Click(object sender, EventArgs e) { student s = JsonConvert.DeserializeObject<student>(textBox1.Text); listBox1.Items.Add(s.age); } private void button5_Click(object sender, EventArgs e) { DataTable dt = getDataTable(); string json = JsonConvert.SerializeObject(dt); listBox1.Items.Add(json); textBox1.Text = json; } private void button6_Click(object sender, EventArgs e) { DataTable dt = JsonConvert.DeserializeObject<DataTable>(textBox1.Text); listBox1.Items.Add(dt.Rows[0]["name"]); }
新聞熱點
疑難解答