2016-04-12 9 views
0

FB.API呼び出しを使用して投稿のコメントを取得していますが、「from」の下にネストされたデータは取得できません。Facebook.MiniJSONコメントとネストされた値の非直列化を解除して返します。

APIエクスプローラコマンド: "10153539873517828 /コメント?"

C#コード

FB.API("/10153539873517828/comments?", HttpMethod.GET, delegate (IGraphResult result) 
       { 
      string jsonMessage = result.RawResult; 
      Debug.Log(jsonMessage); 
      var soap = Json.Deserialize(jsonMessage) as Dictionary<string,object>; 
      List<object> entries = soap["data"] as List<object>; 

      try 
      { 
       for (int i = 0; i < soap.Count; i++) 
       { 
        Dictionary<string,object> messageData = entries[i] as Dictionary<string,object>; 
        object resultData = messageData["message"];    (Works) 
        object resultData = messageData["name"];     (Blank) 
        Debug.Log("JSON string : " + resultData.ToString()); 
       } 
      } 
      catch 
      { 
       Debug.Log("Done!!!"); 
      } 
     }); 

JSON文字列

{ 
    "data": [ 
    { 
     "created_time": "2016-03-31T11:10:18+0000", 
     "from": { 
     "name": "Hello world", 
     "id": "298062736962722" 
     }, 
     "message": "Test comment", 
     "id": "10153539873517828_10153539875377828" 
    }, 
    { 
     "created_time": "2016-03-31T11:12:47+0000", 
     "from": { 
     "name": "Hello world", 
     "id": "298062736962722" 
     }, 
     "message": "people must be wonder what the bleep is this, lol.", 
     "id": "10153539873517828_10153539877202828" 
    } 
    ], 
    "paging": { 
    "cursors": { 
     "before": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEF4TlRNMU16azROelV6TnpjNE1qZAzZANVFExT1RReU1qWXhPQT09", 
     "after": "WTI5dGJXVnVkRjlqZAFhKemIzSTZANVEF4TlRNMU16azROemN5TURJNE1qZAzZANVFExT1RReU1qYzJOdz09" 
    } 
    } 
} 

我々は成功した」、 "名前" を取得しようとしたときに、 "データ" の下の "メッセージ" と "ID" を取得し、関連することができますid "は空白の値を返します。

私たちは多くの投稿を読んで、人々が投稿した解決策をいくつか見てきましたが、問題の解決に役立ったものは見つかりませんでした。

FB SDKを使用しているので、上記の文字列を逆シリアル化するためにFacebook.MiniJSONを使用できるようにする必要があります。取得中:

 { 
    "created_time": "2016-03-31T11:10:18+0000", 
    "from": { 
     "name": "Hello world", 
     "id": "298062736962722" 
    }, 
    "message": "Test comment", 
    "id": "10153539873517828_10153539875377828" 
    }, 

すべての例は、最初のレベルの取得のみをカバーしていますが、これをどのように修正できますか?

答えて

1

は、検索するコンテキストに存在しません。使用可能なキーはcreated_time,idです。辞書はからまで作成し、という名前をから作成する必要があります。ここに私が提案する変更があります。これはテストされておらず、あなたの内部ループをつかんで修正しました。明らかに残りのコードに統合してください。

... 
for (int i = 0; i < soap.Count; i++) 
{ 
    Dictionary<string,object> messageData = entries[i] as Dictionary<string,object>; 
    object resultData = messageData["message"]; 
    Dictionary<string,object> fromData = messageData["from"] as Dictionary<string, object>; 
    object resultData = fromData["name"] 
    Debug.Log("JSON string : " + resultData.ToString()); 
} 
... 
+0

ありがとう、あなたは忍者です! –

関連する問題