У меня есть некоторые данные 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)
Я получаю один корневой объект с ключом «data» и оцениваю другой объект с 2 дочерними элементами, с ключами «name» и «id» и соответствующими значениями, которые можно ожидать. Но когда я пытаюсь привести этот объект к моему типу UserData
, он возвращает Nothing
. В какой-то момент у меня работал этот код, но теперь, когда я возвращаюсь к нему и пытаюсь использовать его снова, кажется, что установился какой-то код гнили, и он перестал работать.
Вот как я пытаюсь получить десериализованные данные как объект UserData
:
Dim userResult As UserData = TryCast(serializer.DeserializeObject(json), UserData)