C# JSON Serialization & Deserialization + DataGridView

 
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;
      }
   }