Java 获取变量";图片“;使用gson从json GraphRequest Facebook SDK
我已经登录并处理了accesstoken,还从GraphResponse FacebookSDK获得了响应。 我想要实现的是从json响应中获取数据“图片” 我怎么可能用gson解析它呢?或者,我可以创建什么样的Pojo类来获得数据结果 下面是我对GraphResponse的Json响应Java 获取变量";图片“;使用gson从json GraphRequest Facebook SDK,java,android,json,facebook,android-studio,Java,Android,Json,Facebook,Android Studio,我已经登录并处理了accesstoken,还从GraphResponse FacebookSDK获得了响应。 我想要实现的是从json响应中获取数据“图片” 我怎么可能用gson解析它呢?或者,我可以创建什么样的Pojo类来获得数据结果 下面是我对GraphResponse的Json响应 { "albums": { "data": [ { "photos": { "data": [ {
{
"albums": {
"data": [
{
"photos": {
"data": [
{
"picture": "https://scontent.xx.fbcdn.net/"
},
{
"picture": "https://scontent.xx.fbcdn.net/"
},
{
"picture": "https://scontent.xx.fbcdn.net/",
"id": "1020051059"
}
],
"paging": {
"cursors": {
"before": "MTAyMODNzAzNDUZD",
"after": "MTAy1M5ODkwNTkZD"
}
}
},
"id": "10200419072"
},
{
"photos": {
"data": [
{
"picture": "https://scontent.xx.fbcdn.net/",
"id": "10248202764"
}
],
"paging": {
"cursors": {
"before": "MTAyMDNzQUyMDI3NjQZD",
"after": "AyMDU5NzjUyMDI3NjQZD"
}
}
},
"id": "1020597122762"
}
],
"paging": {
"cursors": {
"before": "MTAyMDA1QE1MDkwNzIZD",
"after": "MTAyMDNzQ4UxMjI3NjIZD"
},
"next": "https://scontent.xx.net/"
}
},
"id": "102088470922"
}
这是我的主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
info = (TextView) findViewById(R.id.info);
loginButton = (LoginButton) findViewById(R.id.login_button);
initLogin();
}
private void initLogin(){
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
USER_TOKEN = loginResult.getAccessToken().getToken();
info.setText("Access Token " + USER_TOKEN);
initGraph();
}
@Override
public void onCancel() {
// App code
info.setText("Login attempt canceled.");
}
@Override
public void onError(FacebookException exception) {
// App code
info.setText("Login attempt failed.");
}
});
}
private void initGraph() {
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
// Insert your code here
JSONObject jsonObject = response.getJSONObject();
try {
Log.i(TAG,jsonObject.getString("albums"));
} catch (JSONException e) {
e.printStackTrace();
}
Log.i(TAG, "-------------------------");
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "albums.limit(2){photos{picture}}");
request.setParameters(parameters);
request.executeAsync();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
sdkinInitialize(getApplicationContext());
callbackManager=callbackManager.Factory.create();
setContentView(R.layout.activity_main);
info=(TextView)findViewById(R.id.info);
loginButton=(loginButton)findviewbyd(R.id.login_按钮);
initLogin();
}
私有void initLogin(){
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
USER_TOKEN=loginResult.getAccessToken().getToken();
info.setText(“访问令牌”+用户令牌);
initGraph();
}
@凌驾
公开作废{
//应用程序代码
info.setText(“登录尝试已取消”);
}
@凌驾
public void onError(facebook异常){
//应用程序代码
info.setText(“登录尝试失败”);
}
});
}
私有void initGraph(){
GraphRequest请求=GraphRequest.newmereRequest(
AccessToken.getCurrentAccessToken(),
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成公共无效(JSONObject对象,GraphResponse响应){
//在这里插入您的代码
JSONObject JSONObject=response.getJSONObject();
试一试{
Log.i(标签,jsonObject.getString(“albums”);
}捕获(JSONException e){
e、 printStackTrace();
}
Log.i(标记“---------------------------”);
}
});
Bundle参数=新Bundle();
parameters.putString(“fields”、“albums.limit(2){photos{picture}”);
请求。设置参数(参数);
request.executeAsync();
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
正如我所说,我已经成功地得到了响应,但我正在努力找出如何解析它(如果可能的话,使用gson)。或者,是否可以使用Http客户端(如“改造或OKHTTP”)捕获“GraphResponse响应”
到目前为止,我已经能够通过对Api调用电影数据库进行改造来实现GET方法,比如基于TMDB的方法,我成功地获得了相册封面以及相册名称中的全部照片。。请访问我的为您的graph api响应创建您的pojo类。