从GraphObject获取专辑并在android中显示它们

时间:2014-06-23 12:44:24

标签: android facebook-graph-api

我设法使用GraphObject从Facebook获取专辑数据:

Request.ExecuteGraphPathRequestAsync (Session.ActiveSession, "/me/albums", this);

我将相册的所有数据(如相册ID,相册名称,照片数量等)作为InnerJSONObject获取:

Console.WriteLine("output = " + response.GraphObject.InnerJSONObject);

我将输出作为InnerJSONObject获取 - 作为包含所有数据的字符串。

我的问题是,如何以这样一种方式解析该对象:我为每张专辑获取单独的字段,如专辑ID,姓名等,我可以使用它来显示我应用中的照片。

或者,是否有使用FB ID建立用户的Facebook相册页面(包括用户界面)的直接方法?

1 个答案:

答案 0 :(得分:0)

正如文档所说(http://androidapi.xamarin.com/index.aspx?link=T%3AOrg.Json.JSONObject),JSONObject是"一组可修改的名称/值映射。名称是唯一的非空字符串。值可以是Org.Json.JSONObject,Org.Json.JSONArray,Strings,Booleans,Integers,Longs,Doubles或JSONObject.Null的任意组合。值可能不为null,Java.Lang.Double.IsNaN,Java.Lang.Double.IsInfinite或此处未列出的任何类型。"所以你可以将它用作任何键/值对象(例如:作为IDictionary)

但我认为最好和最简单的方法是将JSON对象反序列化为类。我的意思是,将JSONObject转换为字符串,然后使用JSON.NET(http://james.newtonking.com/json)反序列化。例如:

var data = response.GraphObject.InnerJSONObject;

// get json string
var dataString = data.ToString ();

// deserialize  it
var myAlbums = JsonConvert.DeserializeObject<MyAlbums>(dataString);
  • 获取&#34; MyAlbums&#34; class,你可以使用专辑JSON字符串(dataString)和这个奇妙的工具http://json2csharp.com/
  • 创建它