为了账号安全,请及时绑定邮箱和手机立即绑定

将 json 值密钥对解包到 SharedPreferences 的变量

将 json 值密钥对解包到 SharedPreferences 的变量

元芳怎么了 2021-12-30 20:17:16
我有一个 json,我需要一些帮助来格式化它,以便我可以将这些值保存在 SharedPreferences 中,这是困扰我的代码。public class MainActivity extends AppCompatActivity {public static final String EXTRA_MESSAGE = "com.example.cumaskp.mercfood";private SharedPreferences mPreferences;private SharedPreferences.Editor mEditor;EditText username;EditText password;Button loginbutton;Button signupBtn;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    mPreferences = PreferenceManager.getDefaultSharedPreferences(this);    mEditor = mPreferences.edit();    username = (EditText) findViewById(R.id.usernameEditText);    password = (EditText) findViewById(R.id.mailEditText);    signupBtn = (Button) findViewById(R.id.signUpButton);    loginbutton = (Button) findViewById(R.id.loginBtn);    signupBtn.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view){            Intent myIntent = new Intent(MainActivity.this, getData.class);            MainActivity.this.startActivity(myIntent);        }    });    loginbutton.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            new SendPostRequest().execute();        }    });}我认为这个问题经常被问到,但我尝试在 google 上搜索一个 anwser 并且很不清楚我应该如何将字符串格式化为变量。我的应用程序的字符串输出如下所示:{"api_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsdW1lbi1qd3QiLCJzdWIiOjEsImlhdCI6MTU0MTQyNjYxMiwiZXhwIjoxNTQxNTEzMDEyLCJuYW0iOiIxMjM0In0.7TR1ueOB-xqAkI6XgStUnn7HZxBTvxx3wzjKGHDnD4I","user_id":1}有人告诉我,代码总是更好,中间有一个指针。
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您不需要创建变量。由于响应是字符串,请保存 json 本身,另外我看到一个语法错误OnPostExecute()result参数是字符串,字符串没有调用方法,getJsonObject()因此您需要执行以下操作

JSONObject resultAsJsonObject=new  JSONObject(result);

与字符串不同,上述方式将让您将变量用作对象

我建议您将整个 json 保存到共享首选项中,这样您此时就不需要转换它您可以创建一个模型并使用GSON这样您就不需要将其转换为 JSONObject 但是结果将是 json 结构, Gson 库会将你的 json 结果转换为 java 对象


查看完整回答
反对 回复 2021-12-30
?
喵喔喔

TA贡献1735条经验 获得超5个赞

这看起来非常复杂,假设 json String 是您要返回的格式,您所要做的就是将其输入到 JSON 对象中:


JSONObject obj = new JSONObject(responseString);  

然后你可以直接访问数据:


String token = obj.getString("api_token");

int userID = obj.getInt("user_id");  

然后你可以对他们做任何你想做的事情。


查看完整回答
反对 回复 2021-12-30
  • 2 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号