次のような JSON データがあります。
{
"data":
[{
"name":"John Smith",
"id":"12345"
}]
}
次のようなシリアライズ可能なクラスのペアがあります。
<Serializable()> _
Public Class User
Private _name As String
Private _id As String
Public Property name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Public Property id() As String
Get
Return _id
End Get
Set(ByVal value As String)
_id = value
End Set
End Property
End Class
<Serializable()>
Public Class UserData
Private _data As List(Of User)
Public Property data() As List(Of User)
Get
Return (_data)
End Get
Set(ByVal value As List(Of User))
_data = value
End Set
End Property
End Class
オブジェクトとして逆シリアル化しようとすると:
Dim serializer As New JavaScriptSerializer()
Dim userResult As Object = serializer.DeserializeObject(json)
キー「データ」を持つ 1 つのルート オブジェクトを取得し、キー「name」と「id」、および予想される適切な値を持つ 2 つの子を持つ別のオブジェクトの値を取得します。しかし、そのオブジェクトを自分のUserData
型にキャストしようとすると、 が返されますNothing
。私はこのコードをある時点で動作させていましたが、今はそれに戻って再び使用しようとしていますが、コードの腐敗が始まり、動作を停止しているようです.
UserData
デシリアライズされたデータをオブジェクトとして取得しようとしている方法は次のとおりです。
Dim userResult As UserData = TryCast(serializer.DeserializeObject(json), UserData)