传递 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 或 GS​​ON 来获取数据。 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();
                            }
                        }
                    });