Visual Basic サンプル集 |
![]() ![]() ![]() ![]() |
Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
JSONのシリアライズ・デシリアライズ
1.オブジェクトをJSONにシリアライズする例
次の関数は対象のオブジェクトtargetをJSONにシリアライズして返す。この場合「JSONにシリアライズ」とはオブジェクトをJSON形式で表現することを指す。




Public Function Serialize(target
As Object)
As String Using stream As New IO.MemoryStream '▼シリアライズ実行 Dim serializer As New DataContractJsonSerializer(target.GetType) serializer.WriteObject(stream, target) '▼結果を取得 Dim result As String = System.Text.Encoding.UTF8.GetString(stream.ToArray()) Return result End Using End Function |
すぐ試せる例
上記関数の使用例。
前提
- Windows フォーム アプリケーションで作成
- System.Runtime.Serializationへ参照設定
- Button1を配置
- TextBox1を配置



Imports System.Runtime.Serialization.Json Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim p As New Person p.Id = 627 p.Name = "徳川家康" TextBox1.Text = Serialize(p) End Sub Public Function Serialize(target As Object) As String Using stream As New IO.MemoryStream '▼シリアライズ実行 Dim serializer As New DataContractJsonSerializer(target.GetType) serializer.WriteObject(stream, target) '▼結果を取得 Dim result As String = System.Text.Encoding.UTF8.GetString(stream.ToArray()) Return result End Using End Function End Class Public Class Person Public Property Id As Integer Public Property Name As String End Class |
この例を実行して得られるJSONは以下の通り。
{"Id":627,"Name":"徳川家康"} |
2.JSONをデシリアライズする例
次の関数はシリアライズで作成したJSONを読み込んでオブジェクトを作成する。



Public Function Deserialize(Of
T)(json As String)
As T Dim result As T Dim serializer As New DataContractJsonSerializer(GetType(T)) Using stream As New IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)) result = DirectCast(serializer.ReadObject(stream), T) End Using Return result End Function |
すぐ試せる例
上記関数の使用例。
前提
- Windows フォーム アプリケーションで作成
- System.Runtime.Serializationへ参照設定
- Button1を配置
- TextBox1を配置




Imports System.Runtime.Serialization.Json Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim json As String = "{""Id"":627,""Name"":""徳川家康""}" Dim p As Person p = Deserialize(Of Person)(json) MsgBox(p.Name) End Sub Public Function Deserialize(Of T)(json As String) As T Dim result As T Dim serializer As New DataContractJsonSerializer(GetType(T)) Using stream As New IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)) result = DirectCast(serializer.ReadObject(stream), T) End Using Return result End Function End Class Public Class Person Public Property Id As Integer Public Property Name As String End Class |
参考
DataContractJsonSerializerクラス