如何使用Android Native在会话(SharedReferences)中保存JSONResponse?

如何使用Android Native在会话(SharedReferences)中保存JSONResponse?,android,json,sharedpreferences,gson,Android,Json,Sharedpreferences,Gson,我是android的新手。这是我从服务中获得的Json。有人能告诉我如何在会话(共享首选项)中保存此JSONResponse吗?我已经在SessionManager类中定义了此函数,但未能保存它。 JSON: { "message": "Successfully Logged In.", "auths": "KONG,KONG-Surveyor", "user": { "view_all_proposals": "0", "role_id"

我是android的新手。这是我从服务中获得的Json。有人能告诉我如何在会话(共享首选项)中保存此JSONResponse吗?我已经在SessionManager类中定义了此函数,但未能保存它。 JSON:

{
    "message": "Successfully Logged In.",
    "auths": "KONG,KONG-Surveyor",
    "user": {
        "view_all_proposals": "0",
        "role_id": "1",
        "contact_no": "020 8547 4333 (x354)",
        "date_modified": "2013-10-10 10:58:56",
        "status": "ACTIVE",
        "profit_margin_limit": "100",
        "cash_code": "KHO",
        "date_created": "2013-02-03 06:41:41",
        "user_initials": "KHO",
        "password": "f10343d1dc8d44c8935b356aa3f8aae2",
        "id": "27",
        "first_name": "Kong",
        "username": "kong",
        "is_admin": "0",
        "address": "Technology Manager",
        "email": "kong.hoang@mrfsgroup.com",
        "proposal_review": "0",
        "last_name": "Hoang",
        "ldap_authentication": "1"
    },
    "status": true,
    "apkStatus": true,
    "apkFileDate": "2013-12-05 04:47:52",
    "apkFile": "2_SurveyAppNew.apk"
}
这是我已经在SessionManger类中定义的函数:

 public static void setUserObject(Context c, String userObject) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(c);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString("userObject", userObject);
        editor.commit();
    }

    public static String getUserObject(Context ctx) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(ctx);
        String userObject = pref.getString("userObject", null);
        return userObject;
    }

首先,您应该将json字符串转换为json对象,并基于jsonobject使用json字符串。

您可以简单地将整个jsonobject作为字符串。大概是这样的:

String response = httpClient.execute(postMethod, resonseHandler);// your json parsing method

JSONObject jsonObject = new JSONObject(response);

setUserObject(context, jsonObject.toString(),"json_response");
然后你可以像这样检索它:

JSONObject-jsonObj=newjsonobject(getUserObject(context),“json_响应”)

将您的方法更改为:

 public static void setUserObject(Context c, String userObject,String key) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(c);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, userObject);
        editor.commit();
    }

    public static String getUserObject(Context ctx,String key) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(ctx);
        String userObject = pref.getString(key, null);
        return userObject;
    }
书籍:

有关问题,请查看捷豹的答案

好教程:

你能找到的最好的教程系列之一


视频系列。

你所说的“我保存失败”是什么意思?`?我只犯了一个错误,这要感谢它保存在共享首选项中扫描你,请帮助我,因为我必须在共享引用中存储这么多JSON,那么我如何在每次尝试保存会话时放置任何键,以便根据键值获得我的密码想要的json对象你能帮我找一本简单的书或android学习的URL吗我是新手,很难找到答案。你能帮我吗?因为我必须在SharedReferences中存储这么多json,那么当我试图保存会话时,我如何放置任何键,以便在键值的基础上获得想要的jsonobject您可以使用json键将json存储在SharedReferences中。
 public static void setUserObject(Context c, String userObject,String key) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(c);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, userObject);
        editor.commit();
    }

    public static String getUserObject(Context ctx,String key) {
        SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(ctx);
        String userObject = pref.getString(key, null);
        return userObject;
    }