2017-12-27 544 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(); 
    }