我正在使用 MonoTouch 框架开发 iOS 应用程序。我正在使用带有 Xamarin.iOS (v1.3.250) 扩展的 Visual Studio 2010 Professional SP1。我已经能够FacebookConnect.FBSession
通过使用没有问题打开一个有效的,但是当我尝试使用我收到一个非标准的 JSON 样式字符串FacebookConnect.FBLoginView
来发出 Graph API 请求时。当我通过Graph API ExplorerFacebookConnect.FBRequest
运行以下请求时:
me?fields=albums.fields(id,name,cover_photo)
我收到以下回复:
{
"id": "111111111111111111",
"albums": {
"data": [
{
"id": "111111111111111111",
"name": "Some Album (#1)",
"cover_photo": "111111111111111111",
"created_time": "000-00-00T00:00:00+0000"
},
{
"id": "111111111111111111",
"name": "Some Album (#2)",
"cover_photo": "111111111111111111",
"created_time": "000-00-00T00:00:00+0000"
},
],
"paging": {
"cursors": {
"after": "xxxxxxxx=",
"before": "xxxxxxxx="
}
}
}
}
现在所有这一切都很好,并且是我期望收到的,但是当我从我的应用程序发出相同的 Graph API 请求时,如下所示:
public static void GetPhotoAlbums(string _userID)
{
// _userID = "me"
mFBRequest = new FBRequest(FBSession.ActiveSession, _userID + "?fields=albums.fields(id,name,cover_photo)");
FBRequestConnection fbRequestConnection = new FBRequestConnection();
fbRequestConnection.AddRequest(mFBRequest, OnPhotoAlbumsReceived);
fbRequestConnection.Start();
}
static void OnPhotoAlbumsReceived(FBRequestConnection _connection, NSObject _result, NSError _error)
{
if (_error == null)
{
Console.WriteLine("FacebookManager.OnPhotoAlbumsReceived() - JSON: " + _result.Description);
object o = JsonConvert.DeserializeObject(_result.Description);
// ...
}
}
我收到这个 JSON 'like' 响应:
{
albums = {
data = (
{
"cover_photo" = 111111111111111111;
"created_time" = "000-00-00T00:00:00+0000";
id = 111111111111111111;
name = "Some Album (#1)";
},
{
"cover_photo" = 111111111111111111;
"created_time" = "000-00-00T00:00:00+0000";
id = 111111111111111111;
name = "Some Album (#2)";
},
);
paging = {
cursors = {
after = "xxxxxxxx=";
before = "xxxxxxxx=";
};
};
};
"id": "111111111111111111";
}
我不确定我如何/为什么会得到以非标准方式格式化的响应,但不用说,我Newtonsoft.Json.JsonReaderException
在尝试反序列化数据时得到,因为它不遵循标准格式规则(即,而=
不是:
分开的键/值对,;
而不是,
分开容器的元素,一些键有引号,而另一些键没有,等等......)
总的来说,我对 Facebook 和 JSON 的东西还很陌生,我对收到的响应字符串的情况感到非常茫然。非常感谢任何帮助、反馈和想法。谢谢。