我有一個 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 對象
喵喔喔
TA貢獻1735條經驗 獲得超5個贊
這看起來非常復雜,假設 json String 是您要返回的格式,您所要做的就是將其輸入到 JSON 對象中:
JSONObject obj = new JSONObject(responseString);
然后你可以直接訪問數據:
String token = obj.getString("api_token");
int userID = obj.getInt("user_id");
然后你可以對他們做任何你想做的事情。
添加回答
舉報
0/150
提交
取消
