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": [
"基本",
"応用"
]
}
関連の記事