Vb.net 将JSON数据解析为对象列表

Vb.net 将JSON数据解析为对象列表,vb.net,arrays,json,parsing,facebook-graph-api,Vb.net,Arrays,Json,Parsing,Facebook Graph Api,我是JSON新手,目前在解析对象列表中的JSON数据时遇到了一个难题 我试图解析的数据是由facebook graph api生成的,如下所示: { "100001621071794": { "id": "100001621071794", "name": "TEST1", "username": "test1", "link": "http://www.facebook.com/test1", "gender": "male", "pict

我是JSON新手,目前在解析对象列表中的JSON数据时遇到了一个难题

我试图解析的数据是由facebook graph api生成的,如下所示:

 {
  "100001621071794": {
    "id": "100001621071794",
    "name": "TEST1",
    "username": "test1",
    "link": "http://www.facebook.com/test1",
    "gender": "male",
    "picture": "http://profile.ak.fbcdn.net/test1.jpg"
    },
  "534237692": {
    "id": "534237692",
    "name": "TEST2",
    "username": "test2",
    "link": "http://www.facebook.com/test2",
    "gender": "female",
    "picture": "http://profile.ak.fbcdn.net/test2.jpg"
   }
}
Public Class FacebookUser  
  Public id As String  
  Public name As String  
  Public username As String  
  Public link As String  
  Public gender As String  
  Public picture As String  
End Class  
我使用以下代码来解析:

Dim MyFacebookUsers As List(Of FacebookUser) = MyTwitterSerializer.Deserialize(Of List(Of FacebookUser))(FBData)
FacebookUser类如下所示:

 {
  "100001621071794": {
    "id": "100001621071794",
    "name": "TEST1",
    "username": "test1",
    "link": "http://www.facebook.com/test1",
    "gender": "male",
    "picture": "http://profile.ak.fbcdn.net/test1.jpg"
    },
  "534237692": {
    "id": "534237692",
    "name": "TEST2",
    "username": "test2",
    "link": "http://www.facebook.com/test2",
    "gender": "female",
    "picture": "http://profile.ak.fbcdn.net/test2.jpg"
   }
}
Public Class FacebookUser  
  Public id As String  
  Public name As String  
  Public username As String  
  Public link As String  
  Public gender As String  
  Public picture As String  
End Class  
我知道这不是一个数组,因为它缺少“[”和“]”。但是当我用“[”和“]”替换“{”和“}”时,我得到了一个错误,因为一个invlaed矩阵


有人能给我指出正确的方向吗?

你说得对,那不是JSON数组,它是一个包含FacebookUser对象的对象,其中id值也是元素键

在.NET中,Dictionary类是JSON对象的等价物,因此可能类似于

Dim MyFacebookUsers As List(Of FacebookUser) = MyTwitterSerializer.Deserialize(Of Dictionary(Of FacebookUser))(FBData) 
这就是你需要的

正如您所发现的,仅通过更改大括号是无法将其转换为数组列表的。但是,如果您实际有一个数组,它将如下所示:

[
 {"id": "100001621071794",
  "name": "TEST1",
  "username": "test1",
  "link": "http://www.facebook.com/test1",
  "gender": "male",
  "picture": "http://profile.ak.fbcdn.net/test1.jpg"
  },
 {"id": "534237692",
  "name": "TEST2",
  "username": "test2",
  "link": "http://www.facebook.com/test2",
  "gender": "female",
  "picture": "http://profile.ak.fbcdn.net/test2.jpg"
  }
]
你的代码会很好的工作