我正在使用JSon.net反序列化我从GravityForms Web API获取的json对象。
我回来的json就是这个......
{"status":200,"response":{
"12":{"id":"12","title":"Test Form","entries":"1"},
"1":{"id":"1","title":"What's My Home Worth?","entries":"92"}
}
}
我反序列化的VB.net对象是
Namespace Forms
Public Class GFForm
Public Property id As String
Public Property title As String
Public Property entries As String
End Class
Public Class Response
<JsonProperty("1")>
Public Property GFForms() As GFForm
End Class
Public Class TopLevel
Public Property status As Integer
Public Property response As Response
End Class
End Namespace
我正在执行这样的JsonConvert语句..
Dim obj As GravityForms.Forms.TopLevel
obj = JsonConvert.DeserializeObject(Of GravityForms.Forms.TopLevel)(str)
它似乎成功地将json反序列化为我的vb对象,但我只获得了1个响应对象。我应该得到其中的两个吗?
奇怪的是,我得到的GFForm是第二个(ID:1),这使它看起来像是写了第一个对象的值(ID:12)
任何帮助都会很棒,因为我在2天的大部分时间里一直在弄乱这个并且我迷失了。
编辑:
我在上面的问题中并不清楚。我不知道从Web服务返回的GFForm对象的数量。它可以是2(如示例中所示)或者可以是32或45或其他。
我想把GFForm对象放在我可以绑定到datagridview的东西上
答案 0 :(得分:0)
您的响应中有两个GFForm属性,但是一个Response对象有一个要填充的属性。也许你应该尝试使用类似的东西
Namespace Forms
Public Class GFForm
Public Property id As String
Public Property title As String
Public Property entries As String
End Class
Public Class Response
<JsonProperty("1")>
Public Property GFForms1 As GFForm
Public Property GFForms12 As GFForm
End Class
Public Class TopLevel
Public Property status As Integer
Public Property response As Response
End Class
End Namespace
编辑:如果您不知道响应属性的数量,请尝试为每个属性创建一个新的Response对象。