将jArray转换为Object

时间:2018-03-10 12:22:00

标签: .net json vb.net

我有一个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数组反序列化。

但是我无法弄清楚如何做到这一点。 :\

1 个答案:

答案 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))