ASP.NET JSON Serialization & Deserialization + GridView

 
ASP.NET JSON Serialization & Deserialization + GridView
 
記得係 project 上增加 Reference -> System.ServiceModel.Web
 

   default.aspx
 
   <form id="form1" runat="server">
   <div>
      <asp:Label ID="Label2" runat="server" Text="Label"/><BR/>
      <asp:GridView ID="GridView1" runat="server" />
   </div>
   </form>
 

 

   default.aspx.vb
 
   Imports System
   Imports System.Runtime.Serialization.Json
   Imports System.IO
 
   Private Sub JSON_Ser_DeSer()
 
      Dim p1 As New List(Of 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"))
 
      Dim Stream1 As New MemoryStream()
      Dim ss1 As New DataContractJsonSerializer(GetType(List(Of Staff)))
 
      ss1.WriteObject(Stream1, p1)
 
      Stream1.Position = 0
      Dim sr As New StreamReader(Stream1)
      Label2.Text = "Serization : " & sr.ReadToEnd()
 
      Stream1.Position = 0
      Dim d1 As New List(Of Staff)
      d1 = TryCast(ss1.ReadObject(Stream1), List(Of Staff))
 
      GridView1.DataSource = InsertDataTable(d1)
      GridView1.DataBind()
 
   End Sub
 
   Private Function InsertDataTable(ByVal A As List(Of Staff)) As DataTable
 
      Dim AA As New DataTable
 
      AA.Columns.Add("Name")
      AA.Columns.Add("Position")
      AA.Columns.Add("Age")
 
      For i As Integer = 0 To A.Count – 1
         AA.Rows.Add()
         AA.Rows(i).Item("Name") = A(i).Name
         AA.Rows(i).Item("Position") = A(i).Position
         AA.Rows(i).Item("Age") = A(i).Age
      Next
 
      Return AA
   End Function
 
   <SerializableAttribute()> Private Class Staff
 
      Public Name As String
      Public Position As String
      Public Age As String
 
      Sub New(ByVal A As String, ByVal B As String, ByVal C As String)
         Name = A
         Position = B
         Age = C
      End Sub
 
   End Class