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行目は値のアクセスの仕方が異なります。
関連の記事