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 |