2011-08-17 9 views
0

私はJSONが新しく、現在オブジェクトリストのJSONデータを解析する際に問題を抱えています。JSONデータをオブジェクトのリストに解析する

私は解析しようとしていたデータは、Facebookのグラフ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" 
    } 
} 

私は解析するには、次のコードを使用しています:

Dim MyFacebookUsers As List(Of FacebookUser) = MyTwitterSerializer.Deserialize(Of List(Of FacebookUser))(FBData) 

クラスFacebookUserは次のようになります:

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 

これは配列がないためです'['と ']'しかし、 '{'と '}'を '['と ']'に置き換えると、invlaidマトリックスのためにエラーが発生します。

誰かが正しい方向に向けることができますか?

答えて

0

これはJSON配列ではなく、id値が要素キーでもあるFacebookUserオブジェクトを含むオブジェクトです。

.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" 
    } 
] 

あなたのコードはうまくいきました。

関連する問題