2011-09-09 14 views
1

私はデスクトップアプリケーション用にFacebook C#sdkを使用しています。私は、動的オブジェクトを取得してから名前を抽出すると、IDなどダイナミックオブジェクト処理の問題Facebook C#sdk

dynamic result = fb.Get("/me"); 
string name=result.name; 

今の問題は、私はワークなどの情報やお気に入りのチームを抽出することができないで、私は必要な権限を使用しましたが、処理できませんよ動的オブジェクト、]

"languages": [ 
{ 
    "id": "106502622718539", 
    "name": "Bānglā" 
}, 
{ 
    "id": "106059522759137", 
    "name": "English" 
} 

しようとしました

http://developers.facebook.com/tools/explorer/

およびそれらを得るために多くのことを検索:それは、この形式であります。何も見つかりませんでした。私はそれが配列の形で来ることを読んだ。あなたが望むかもしれないように見えます

答えて

1

FacebookのC#SDK/SimleJson(Facebook C#SDKはjsonシリアライズ/デシリアライズのためにSimpleJsonを使用しています)のjsonデータを消費する方法に関するゴールデンルールです。

Array、Json Object、およびPrivimitiveの3種類があります。

  • アレイ:のIList < OBJECT>またはのIList <動的にキャストすることができ>
  • JsonObject:キーと値のペア - IDictionaryを<文字列、オブジェクト>
  • プリミティブ型:BOOL、文字列、ロング、ダブル。

langaugesは配列なので、IList <オブジェクトとして使用し、Json Skeetのようにforループで消費することができます。インデクサや配列のさまざまなプロパティなど、他のIList < T>の機能も利用できます。

dynamic result = fb.Get("/me"); 
var langauges = result.languages; 
var length = languages.Length; 
var lang1 = languages[0]; 
var lang1Id = lang1["id"]; 
var lang1Name = lang1["name"]; 
var lang2 = langauges[1]; 
var lang2Id = lang2.id; 
var lang2Name = lang2.name; 

lang1とlang2はJsonObjectあるので、あなたはlang1のようなインデクサーを使用するか、[「ID」]あなたはIDictionaryを<文字列、オブジェクト>またははるかに簡単に使用lang1.idためでそうであるように。

+0

ありがとう – AtanuCSE

2

.......... C#コードを通じてそれらの情報を抽出するために助けてください:

dynamic result = fb.Get("/me"); 
foreach (dynamic language in result.languages) 
{ 
    Console.WriteLine("{0}: {1}", language.name, language.id); 
} 

は、私はFacebookがしかし自分自身をSDK使用していたと言うことはできません。

+0

ありがとうございました – AtanuCSE