传递 facebook 值时出错:gson.JsonPrimitive 无法转换为 gson.JsonObject
Error when passing facebook value: gson.JsonPrimitive can not be cast to gson.JsonObject
当我将 Facebook Json 从我的 Login.java 解析到其他 activity:
时出现此错误
java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be
cast to com.google.gson.JsonObject
尝试这样做时:(AnotherActivity.java)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);
callbackManager = CallbackManager.Factory.create();
String token;
token = getIntent().getExtras().getString("token");
pref.getPref(PREF_IS_LOGIN);
System.out.println("pref : " +pref.getPref(PREF_IS_LOGIN)); //res = 1
System.out.println("token : " +token); //result = FB user token
try {
Gson gson = new Gson();
jsonObject = gson.fromJson(token, JsonObject.class); //error at this
String name = jsonObject.get("name").getAsString();
Log.d("Root Activity", "Result:" + name);
}catch (Exception e){
e.printStackTrace();
}
}
我正在为 Android 使用 facebook SDK 4.X。。好像不想转换成googleJson。任何人都知道如何解决这个案子?谢谢。
没关系,只是发现我不需要使用 JSON 或 GSON 来获取数据。
FB Value 可以使用 GraphApi 传递,并且还可以添加此部分:protected void onActivityResult(int requestCode, int resultCode, Intent data) { .. } in other activity..
final GraphRequest graphRequest = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) {
try {
String name = jsonObject.get("name").toString();
Log.d("GraphRequest", "name:" + name);
} catch (JSONException e) {
e.printStackTrace();
}
}
});
当我将 Facebook Json 从我的 Login.java 解析到其他 activity:
时出现此错误java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be cast to com.google.gson.JsonObject
尝试这样做时:(AnotherActivity.java)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);
callbackManager = CallbackManager.Factory.create();
String token;
token = getIntent().getExtras().getString("token");
pref.getPref(PREF_IS_LOGIN);
System.out.println("pref : " +pref.getPref(PREF_IS_LOGIN)); //res = 1
System.out.println("token : " +token); //result = FB user token
try {
Gson gson = new Gson();
jsonObject = gson.fromJson(token, JsonObject.class); //error at this
String name = jsonObject.get("name").getAsString();
Log.d("Root Activity", "Result:" + name);
}catch (Exception e){
e.printStackTrace();
}
}
我正在为 Android 使用 facebook SDK 4.X。。好像不想转换成googleJson。任何人都知道如何解决这个案子?谢谢。
没关系,只是发现我不需要使用 JSON 或 GSON 来获取数据。 FB Value 可以使用 GraphApi 传递,并且还可以添加此部分:protected void onActivityResult(int requestCode, int resultCode, Intent data) { .. } in other activity..
final GraphRequest graphRequest = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) {
try {
String name = jsonObject.get("name").toString();
Log.d("GraphRequest", "name:" + name);
} catch (JSONException e) {
e.printStackTrace();
}
}
});