从JSONObject中获取字符串[英] Getting a string out of a JSONObject

问题描述

我正在尝试从一个 JSONObject 中获取一个字符串,该字符串是从一个 API 请求中接收到的.

我的 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);
    }`

推荐答案

您的令牌字段在另一个 JSONObject 数据中,因此您必须执行以下操作

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

如果您不确定您的令牌是否始终存在,您也可以使用 optString() 方法而不是 getString

本文地址:https://www.itbaoku.cn/post/978403.html