具有嵌套列表的VBSON对象的JSON字符串

时间:2014-12-19 11:28:25

标签: json vb.net

我从Web服务中获得了一些JSON,如下所示:

{
  "disclaimer": "Exchange r..",
  "license": "Data sourced from variou..",
  "timestamp": 1262365200,
  "base": "USD",
  "rates": {
    "AED": 3.67275,
    "AFN": 48.550089,
    "ALL": 96.435505,
    "AMD": 377.894224,
    "ANG": 1.791,
    "AOA": 89.174867,
    "ARS": 3.79928
  }
}

我已经建立了一个小班来接受它。

   Class currencyValues

        Class ratePairs
            Property currencyCode
            Property currencyValue
        End Class

        Property disclaimer
        Property license
        Property timestamp
        Property base
        Property rates As New List(Of ratePairs)

    End Class

当我运行代码接受JSON进入类时,它采用顶级属性,但是ratePairs列表不会填充。

   Dim js As New System.Web.Script.Serialization.JavaScriptSerializer()
    Dim recs = js.Deserialize(Of currencyValues)(curRecordJSON)

列表recs.Rates的计数为零。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

原始json中的rates属性不是数组,因此无法反序列化为列表。

它实际上是一个对象,具有AEDAFN等属性。您可以将其反序列化为Dictionary(Of String, Double),或者如果属性永远不会更改,则可以建立一个类来保持它:

Class Rates
  Property AED
  Property AFN
  'etc
End Class