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