java - 从 JSONObject 中获取字符串

标签 java android json rest

我正在尝试从 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);
    }`

最佳答案

您的 token 字段位于另一个 JSONObject 数据中,因此您必须执行以下操作

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

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

关于java - 从 JSONObject 中获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996330/

相关文章:

java - 打开 PDF 到特定页面

android - 在 Anko DSL 中创建自定义 View/ViewGroup 类

java - 根据数据库属性返回 getItemViewType

javascript - 如何将两个下载的数组合并为一个 JSON 数组?

java - 如何在 spring 应用程序中注册自定义 jackson 过滤器?

javascript - api无法获取json数据

java - Sonar 产生警告,Eclipse 无法使用格式化程序解决

c# - 如何在 Java 中执行 GUI 任务

Java 堆大小 - 这可行吗?

java - 按下完成后,Eclipse editText 移除焦点(光标)