我想将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数组反序列化。“
有什么问题?感谢
答案 0 :(得分:1)
问题是您无法将当前JSON数组(例如[1,2,3])反序列化为类型'tbl_Staff',因为该类型需要JSON对象(例如{“name”:“value”})才能正确反序列化。要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”})或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList),例如List从JSON数组反序列化。 JsonArrayAttribute也可以添加到类型中,以强制它从JSON数组反序列化。
似乎无论我如何详细地提出错误信息,人们只是不读它: - \
答案 1 :(得分:1)
我找到了答案。我只是将代码更改为List。然后完美地工作。
Dim request As String = New StreamReader(data).ReadToEnd
response = AddStaff(JsonConvert.DeserializeObject(Of List(Of tbl_Staff))(request))
Return JsonConvert.SerializeObject(response)