我一直在对一些JSON进行反序列化,在调试时,我在即时窗口中得到了以下错误:“在System.Web.Extensions.dll中出现了'System.InvalidOperationException‘类型的第一次机会异常”
下面是我试图反序列化的JSON:
{ "Asks":[ [ 919, 11.62026440 ], [ 919.06, 0.07269375 ] ], "Bids":[ [ 901.44, 0.01000050 ], [ 901, 0.25000000 ] ] }
我的班级:
<Serializable()>
Public Class orderbookJsonDeserializerClass
Private _asks As List(Of Dictionary(Of Double, Double))
Public Property asks() As List(Of Dictionary(Of Double, Double))
Get
Return _asks
End Get
Set(ByVal value As List(Of Dictionary(Of Double, Double)))
_asks = value
End Set
End Property
Private _bids As List(Of Dictionary(Of Double, Double))
Public Property bids() As List(Of Dictionary(Of Double, Double))
Get
Return _bids
End Get
Set(ByVal value As List(Of Dictionary(Of Double, Double)))
_bids = value
End Set
End Property
End Class
我的代码:
Dim js As New JavaScriptSerializer
Dim testObj = js.Deserialize(Of orderbookJsonDeserializerClass)(responseFromServer)
在调试时,当它试图执行"Dim testObj = js.Deserialize(Of orderbookJsonDeserializerClass)(responseFromServer)“)”指令时,我得到了前面提到的错误。
发布于 2013-12-11 08:06:52
所以我想我把这件事搞得太复杂了。在创建了一个包含两个对象的类,然后尝试了不同的组合之后,我终于找到了正确的类来将JSON反序列化为:
<Serializable()>
Public Class genericOrderbook
Public Asks As New List(Of List(Of Double))
Public Bids As New List(Of List(Of Double))
End Class
现在,我可以遍历并获得所有的出价和要价,以及所有的趣事。问题解决了!
https://stackoverflow.com/questions/20485742
复制相似问题