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

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

目次

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

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の参照の設定が必要です。
    →画面右の参照をクリック>参照の追加>アセンブリ>Json.NET .NET 4.0
    →無い場合は、ツール>NuGet パッケージマネージャ>Newtonsoft.Jsonを取得
  • ASP.NETではNewtonsoft.Jsonはデフォルトで設定されています。

 

JSONをオブジェクトにする

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

1.JSONデータ

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

2.JSONを変換する

Imports Newtonsoft.Json

Module Module1
	Public Class Employee
		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 employee1 As Employee = JsonConvert.DeserializeObject(Of Employee)(Json1)
		Console.WriteLine(employee1.id) '1
		Console.WriteLine(employee1.name) '鈴木
		Console.WriteLine(employee1.sikaku(0)) '基本
		Console.WriteLine(employee1.sikaku(1)) '応用

		'クラスにマッピングしない
		Dim employee2 As Object = JsonConvert.DeserializeObject(Json1)
		Console.WriteLine(employee2("id")) '1
		Console.WriteLine(employee2("name")) '鈴木
		Console.WriteLine(employee2("sikaku")(0)) '基本
		Console.WriteLine(employee2("sikaku")(1)) '応用
	End Sub
End Module

1行目は、Newtonsoft.Jsonをインポートしています。

14行目は、4~8行目のクラスにマッピングするやり方です。
DeserializeObjectメソッドでJSONをオブジェクトにしています。

21行目は、クラスにマッピングしないやり方です。
15~18行目と22~25行目は値のアクセスの仕方が異なります。

 

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

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

 

オブジェクトをJSONにする

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

Imports Newtonsoft.Json

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

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

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

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

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

関連の記事

JSONのデータ型とは+JSON整形ツール

△上に戻る