我有一个JSON数组,我想用json.net转换为我的User对象。
jArray1 = [" First"," Last",12345]
Public Class User
Public FirstName as String
Public LastName as String
Public UserId as Integer
End Class
我试过了
MyUser = jArray1.ToObject(Of User)
这给了我这个错误: 无法将当前JSON数组反序列化为类型' User'因为类型需要JSON对象
我错过了什么?
错误消息还说:JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化。
但是我无法弄清楚如何做到这一点。 :\
答案 0 :(得分:0)
你有几个问题。一个是您必须反序列化为User
s的集合,而不是单个User
。
您的下一个问题是您的数组只包含任意项。两个字符串和整数。机制如何知道您希望User.FirstName
属性中的字符串“First”,依此类推?
我不知道你是如何获得JArray
的,但这基本上就是你想要的:
Dim json = "[{ 'FirstName' : 'First', 'LastName' : 'Last', 'UserId' : 1234 }]"
Dim jar = JArray.Parse(json)
Dim usr = jar.ToObject(Of List(Of User))