[VB.NET] JSON へのシリアライズとデシリアライズ

2017年7月1日

 VB.NET で JSON を使ったシリアライズ/デシリアライズの例。
 Json.DataContractJsonSerializer は .net 4 系で追加されたようなので、.net 2 系では動作しません。

 ポイントは、シリアライズ対象のクラスに <DataContract> 属性をつけること、シリアライズ対象のメンバーに<DataMember> 属性をつけることだろうか。

' 参照設定 "System.Runtime.Serialization"

Imports System.IO
Imports System.Text
Imports System.Runtime.Serialization

<DataContract>
Public Class Container

    <DataMember>
    Public Items As New Dictionary(Of String, Object)

End Class

Module Module1

    Sub Main()

        ' 元のオブジェクトの作成
        Dim obj0 = New Container
        obj0.Items.Add("AAA", 100)
        obj0.Items.Add("BBB", 250)

        'シリアライザー
        Dim serializer = New Json.DataContractJsonSerializer(GetType(Container))

        ' シリアライズ
        Dim str1 As String = ""
        Using mem = New MemoryStream()
            serializer.WriteObject(mem, obj0)
            str1 = Encoding.UTF8.GetString(mem.ToArray())
        End Using

        ' デシリアライズ
        Dim obj2 As Container
        Using mem = New MemoryStream(Encoding.UTF8.GetBytes(str1))
            obj2 = CType(serializer.ReadObject(mem), Container)
        End Using

    End Sub

End Module






カテゴリー: Program, VB.NET

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org