2013-12-10 70 views
0

我一直在反序列化一些JSON,并且在调试时在立即窗口中出现以下错误:“在System.Web中发生了类型'System.InvalidOperationException'的第一个机会异常.Extensions.dll”使用JavaScriptSerializer反序列化JSON字典列表

这里是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) 

调试时,我得到前面提到的错误时,它试图执行 “昏暗testObj = js.Deserialize(OF orderbookJsonDeserializerClass)(responseFromServer)” 指令。

回答

0

所以我觉得我这样做太复杂了。使一类的两个对象,然后尝试不同的组合之后,我终于想出了正确的类反序列化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 

现在我可以循环并获得所有投标和要求,以及所有爵士乐。问题解决了!

相关问题