我试图从我从API请求中收到的JSONObject中获取字符串。
我的JSONObject如下:
{
"status":"success",
"message":"user authenticated",
"data": { "id":11,
"username":"2160481",
"token":"MEznhD8RE1-ykZLOdGs4i9ZfRFQl5h_"
}
}
我已经尝试了一些我在这里找到的回复,比如getString(" token")没有成功。我还尝试在里面创建一个带有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 :(得分:2)
你应该能够通过使用它获得令牌。
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();
}
答案 1 :(得分:0)
您的令牌字段位于另一个JSONObject数据中,因此您必须执行以下操作
yourMainObject.getJSONObject("data").getString("token");
如果您不确定您的令牌是否始终存在,您也可以使用optString()方法而不是getString
答案 2 :(得分:0)
只需使用将POJO序列化/反序列化为Java对象的库。