我无法反序列化具有数组的JSON文件。如果我将其中一个人带入自己的JSON字符串并将其放入People类,我可以让它工作正常。但是,当我执行多个时,它不起作用,并且每次只返回一个空对象。我需要使用多个字符串才能更改JSON,因为这是我收到的。 DataContract或DataMember中有什么东西在调用这些时我做错了吗?
使用People class工作JSON字符串= {“”name“”:“”J.Lane“”,“”att“”:1}
不使用带有PeopleList的JSON字符串class = {“”people“”:{“”00-0029619“”:{“”name“”:“”J.Lane“”,“”att“”:1} “” 00-0021206 “”:{ “” 名称 “”: “” J.Street “”, “” ATT “”:3}}}
T
答案 0 :(得分:0)
你的json的形式不是List(Of People)
它是Dictionary(Of String, People)
Public People_List As List(Of People)
需要; Public People_Dict As Dictionary(Of String, People)
如果你将这种类型传递给你的反序列化方法,一切都应该可以正常工作(或者至少它会超过你当前的错误)。
编辑:下一个错误;
此;
<DataContract()> _
Public Class People
<DataMember(Name:="name")> _
Public Person_Name As String
<DataMember(Name:="att")> _
Public Attempts As String
End Class
需要 _ 公共阶层人 _ Public Person_Name As String
<DataMember(Name:="att")> _
Public Attempts As Int
End Class
因为没有引用att的值,所以它显然不是字符串。我应该注意到昨天。无论如何,如果您不熟悉将json映射到.NET中的对象,我可能会建议您熟悉这里的一些材料http://www.json-schema.org/
如果你能流利地理解json的模式,那么就可以更容易地说出“这是一个dictionarys字典,其中包含了应该具有这些属性的对象”或者其他什么。