我想把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)