C# JSON Serialization & Deserialization + DataGridView
記得係 project 上增加 Reference -> System.Runtime.Serialization 及 System.ServiceModel.Web
C# JSON Serialization & Deserialization + DataGridView |
using System.IO; using System.Runtime.Serialization.Json; private void JSON_Ser_DeSer() { List<Staff> p1 = new List<Staff>(); p1.Add(new Staff("Ma", "Programmer", "29")); p1.Add(new Staff("Ma", "Programmer", "30")); p1.Add(new Staff("Ma", "Programmer", "31")); p1.Add(new Staff("Ma", "Programmer", "32")); p1.Add(new Staff("Ma", "Programmer", "33")); p1.Add(new Staff("Ma", "Programmer", "34")); p1.Add(new Staff("Ma", "Programmer", "35")); p1.Add(new Staff("Ma", "Programmer", "36")); MemoryStream Stream1 = new MemoryStream(); DataContractJsonSerializer ss1 = new DataContractJsonSerializer(typeof(List<Staff>)); ss1.WriteObject(Stream1, p1); Stream1.Position = 0; StreamReader sr = new StreamReader(Stream1); this.label1.Text = "Serization : " + sr.ReadToEnd(); Stream1.Position = 0; List<Staff> d1 = new List<Staff>(); d1 = ss1.ReadObject(Stream1) as List<Staff>; this.dataGridView1.DataSource = InsertDataTable(d1); } private DataTable InsertDataTable(List<Staff> A) { DataTable AA = new DataTable(); AA.Columns.Add("Name"); AA.Columns.Add("Position"); AA.Columns.Add("Age"); for (int i = 0; i >= 0 && i <= A.Count – 1;i++) { AA.Rows.Add(); AA.Rows[i]["Name"] = A[i].Name; AA.Rows[i]["Position"] = A[i].Position; AA.Rows[i]["Age"] = A[i].Age; } return AA; } [Serializable] private class Staff { public string Name; public string Position; public string Age; public Staff(string A, string B, string C) { Name = A; Position = B; Age = C; } } |