我设法使用GraphObject从Facebook获取专辑数据:
Request.ExecuteGraphPathRequestAsync (Session.ActiveSession, "/me/albums", this);
我将相册的所有数据(如相册ID,相册名称,照片数量等)作为InnerJSONObject获取:
Console.WriteLine("output = " + response.GraphObject.InnerJSONObject);
我将输出作为InnerJSONObject获取 - 作为包含所有数据的字符串。
我的问题是,如何以这样一种方式解析该对象:我为每张专辑获取单独的字段,如专辑ID,姓名等,我可以使用它来显示我应用中的照片。
或者,是否有使用FB ID建立用户的Facebook相册页面(包括用户界面)的直接方法?
答案 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);