JSON反序列化错误



我想把json传递给服务器,下面是json格式:

[{"StaffID":"S01","StaffRank":"Manager"},{"StaffID":"S02","StaffRank":"Waiter"}]

我尝试了以下代码来获取json数组:

  Dim request As String = New StreamReader(data).ReadToEnd
    response = AddStaff(JsonConvert.DeserializeObject(Of tbl_Staff)(request))
    Return JsonConvert.SerializeObject(response)
我得到了新的错误,它是:

"无法将当前JSON数组(例如[1,2,3])反序列化为类型。'tbl_Staff',因为该类型需要JSON对象(例如{"name":"value"})来正确反序列化。要修复此错误将JSON更改为JSON对象(例如{"name":"value"})或将反序列化类型更改为数组或实现类的类型集合接口(例如:ICollection, IList)像List那样可以从JSON数组反序列化。JsonArrayAttribute也可以是添加到类型以强制它从JSON数组反序列化。"

有什么问题吗?由于

问题是您无法将当前JSON数组(例如[1,2,3])反序列化为类型'tbl_Staff',因为该类型需要JSON对象(例如{"name":"value"})来正确反序列化。要修复此错误,要么将JSON更改为JSON对象(例如{"name":"value"}),要么将反序列化类型更改为数组或实现集合接口的类型(例如ICollection, IList),例如可以从JSON数组反序列化的List。JsonArrayAttribute也可以添加到该类型中,以强制它从JSON数组反序列化。

似乎无论我把错误信息写得多么详细,人们就是不读:-

我找到了答案。我只是把代码改成了List。

Dim request As String = New StreamReader(data).ReadToEnd
response = AddStaff(JsonConvert.DeserializeObject(Of List(Of tbl_Staff))(request))
Return JsonConvert.SerializeObject(response)

相关内容

  • 没有找到相关文章

最新更新