Java 从JSONObject中获取字符串
我试图从一个JSONObject中获取一个字符串,这个JSONObject是我从一个API请求中接收到的 我的JSONObject如下所示:Java 从JSONObject中获取字符串,java,android,json,rest,Java,Android,Json,Rest,我试图从一个JSONObject中获取一个字符串,这个JSONObject是我从一个API请求中接收到的 我的JSONObject如下所示: { "status":"success", "message":"user authenticated", "data": { "id":11, "username":"2160481", "token":"MEznhD8RE1-ykZLOdGs4i9ZfRFQl5h_" } } 我尝试了一
{
"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);
}`
您的令牌字段位于另一个JSONObject数据中,因此您必须执行以下操作
yourMainObject.getJSONObject("data").getString("token");
如果您不确定您的令牌是否始终存在,您也可以使用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();
}
只需使用将POJO序列化/反序列化为Java对象的库 像格森一样: