VB.NET オブジェクトとJSONを変換する

VB.NETのオブジェクトとJSONを変換するサンプルです。

目次

サンプル オブジェクトからJSONに変換する
  JSONからオブジェクトに変換する

オブジェクトからJSONに変換する

Public Shared Function SerializeObject(<NullableAttribute(2)> value As Object) As String
  • SerializeObjectメソッドは、オブジェクトをJSONに変換します。
  • 戻り値は「String型」です。
  • シリアライズとも呼ばれます。
  • Newtonsoft.Jsonの参照の設定が必要です。
  • ASP.NETではNewtonsoft.Jsonはデフォルトで設定されています。
  • 以下は、newtonsoftのリンクです。
    https://www.newtonsoft.com/json

オブジェクトをJSONにする

オブジェクトをJSONにするサンプルです。

Imports Newtonsoft.Json

Module Module1
	Public Class Syain
		Public Property id As Integer
		Public Property name As String
		Public Property sikaku As String()
	End Class
	Sub Main()
		Dim syain1 As Syain = New Syain()
		syain1.id = 1
		syain1.name = "鈴木"
		syain1.sikaku = {"基本", "応用"}

		Dim Json As String = JsonConvert.SerializeObject(syain1)
		Console.WriteLine(Json) 'JSONを出力
	End Sub
End Module

1行目は、Newtonsoft.Jsonをインポートしています。
4~8行目はクラスです。
7行目は、配列です。
11行目でオブジェクト(インスタンス)を生成しています。
15行目は、SerializeObjectメソッドでオブジェクトをJSONにしています。

結果は以下のようにJSONを取得できます。

{
    "id": 1,
    "name": "鈴木",
    "sikaku": [
        "基本",
        "応用"
    ]
}

JSONからオブジェクトに変換する

Public Shared Function DeserializeObject(Of T)(value As String) As T
Public Shared Function DeserializeObject(value As String) As <NullableAttribute(2)> Object
  • DeserializeObjectメソッドは、JSONをオブジェクトに変換します。
  • デシリアライズとも呼ばれます。
  • Newtonsoft.Jsonの参照の設定が必要です。
  • ASP.NETではNewtonsoft.Jsonはデフォルトで設定されています。

JSONをオブジェクトにする

JSONをオブジェクトにするサンプルです。

Imports Newtonsoft.Json

Module Module1
	Public Class Syain1
		Public Property id As Integer
		Public Property name As String
		Public Property sikaku As String()
	End Class
	Sub Main()
		'クラスにマッピングする
		Dim Json1 As String = "{""id"":  1,""name"":""鈴木"",""sikaku"":[""基本"",""応用""]}"

		Dim syain1 As Syain1 = JsonConvert.DeserializeObject(Of Syain1)(Json1)
		Console.WriteLine(syain1.id) '1
		Console.WriteLine(syain1.name) '鈴木
		Console.WriteLine(syain1.sikaku(0)) '基本


		'クラスにマッピングしない
		Dim Json2 As String = "{""id"":  1,""name"":""鈴木"",""sikaku"":[""基本"",""応用""]}"

		Dim syain2 As Object = JsonConvert.DeserializeObject(Json2)
		Console.WriteLine(syain2("id")) '1
		Console.WriteLine(syain2("name")) '鈴木
		Console.WriteLine(syain2("sikaku")(1)) '応用
	End Sub
End Module

1行目は、Newtonsoft.Jsonをインポートしています。
4~8行目はクラスです。
7行目は、配列です。
11行目でJSONです。
13行目は、DeserializeObjectメソッドでJSONをオブジェクトにしています。
4~8行目のSyain1クラスにマッピングしています。
22行目もDeserializeObjectメソッドでJSONをオブジェクトにしていますがクラスにマッピングしていません。
23~25行目と14~16行目は値のアクセスの仕方が異なります。

関連の記事

JSON文字列を整形するWebツール

△上に戻る