2017-12-27 540 views
0

我想從我從API請求中收到的JSONObject中獲取一個字符串。從JSONObject中獲取字符串

我的JSONObject如下:

{ 
    "status":"success", 
    "message":"user authenticated", 
    "data": { "id":11, 
      "username":"2160481", 
      "token":"MEznhD8RE1-ykZLOdGs4i9ZfRFQl5h_" 
    } 
} 

我試過沒有成功一些迴應,我發現在這裏,喜歡的getString(「令牌」)。我也試着用JSONObject創建一個數組,並從那裏獲取字符串,也沒有成功。

編輯:

嘗試1:

String data = response.toString(); 
JSONObject teste = new JSONObject(data); 
String status = teste.getString("status"); 
System.out.println(status); 

嘗試2:

String token = null; 
     try { 
      JSONArray arr = new JSONArray(); 
      arr.put(response); 
      JSONObject jObj = arr.getJSONObject(0); 
      token = jObj.getString("token"); 
    System.out.println("---> Token: " + token); 
     } catch (JSONException e) { 
      System.out.println("---> Error:" + e); 
     } 

嘗試3:

String token = null; 
     try { 
      token = response.getString("token"); 
    System.out.println("---> Token: " + token); 

    } catch (JSONException e) { 
     System.out.println("---> Error:" + e); 
    }` 

回答

0

你的令牌領域裏面另一個JSONObject的數據,以便您將不得不做以下

yourMainObject.getJSONObject("data").getString("token"); 

您還可以,如果你不知道你的令牌將總是存在

1

你應該能夠通過它來獲取令牌使用optString()方法,而不是的getString。

try { 
     String data = response.toString(); 
     JSONObject jsonObject = new JSONObject(data); 
     String token = jsonObject.getJSONObject("data").getString("token"); 
     System.out.println(token); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    }