从服务器获取单个值并保存到共享首选项

时间:2016-02-03 05:26:25

标签: string sharedpreferences jsonobject

我正试图获得此{"status": [{"RegistrationID":"4"}]}
来自服务器的值并将该值保存在sharedpreferences中,但这会抛出nullpointerexception这是我正在尝试的代码......

        JSONObject o = new JSONObject(result);
        JSONObject obj = o.optJSONObject("status");
        String uid = obj.optString("RegistrationID");
        Log.e("RegistrationID", uid);
        AvailableItems  set = new AvailableItems();

        set.sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        String value = set.sp.getString("RegistrationID", uid);
        SharedPreferences.Editor editor = set.sp.edit();
        editor.putString("first", value);
        editor.commit();

此行显示异常`String uid = obj.optString(" RegistrationID");'

1 个答案:

答案 0 :(得分:0)

您在结果字符串中获取数组。但是在您的代码中,您将其作为JsonObject获取。 “RegistrationID”包含在一个数组中。 请尝试以下代码。

try {
      JSONObject o = new JSONObject(result);
      JSONArray obj = o.getJSONArray("status");
      JSONObject jsonobj = obj.getJSONObject(0);
      Log.e("RegistrationID", jsonobj.getString("RegistrationID"));
    } catch (Exception e) {
      e.printStackTrace();
    }

快乐编码.. !!