java - 从 JSON 响应中获取值

标签 java android json okhttp

我需要完成的事情很简单 - 我使用 OKHttp 从我的服务器获取 JSON 编码响应,并且我需要解析一个简单(一维)JSON 响应以提取单个值。

我编写了一个简单的代码 fragment ,但出现错误。

这是 OKHttpClient 的代码,以防万一:

OkHttpClient client = new OkHttpClient();
RequestBody formVars = new FormBody.Builder().add(..vars..).build();
Request request = new Request.Builder().url(url).post(formVars).build();
Response response = null;
try {
      response = client.newCall(request).execute();
      JSONObject jj = new JSONObject((Map) response.body());
      String e = jj.getString("status");
} catch {
      ...
}

我收到的错误(红线)位于 jj.getString("status");:

未处理的异常:org.json.JSONException

JSON 字符串很简单 {"status":"1"}

最佳答案

您忘记将该响应转换为字符串。您需要做的就是:

String stringResponse = response.body().string();

JSONObject jj = new JSONObject(stringResponse);

关于java - 从 JSON 响应中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37086007/

相关文章:

java - 将 char 数组分配给 int 数组

java - 连接到 Android 应用程序中的推送器,多次还是一次?

ios - 使用 Swift 4 解码嵌套 JSON 只返回一个对象

json - 使用 jq 计算缺少键的记录

javascript - 在 JavaScript 中读取 JSON 值坐标并绘制到 Google map

java - @see 和 @inheritDoc 之间的区别的详细信息

字符串[]中的Java内存使用与许多字符串

Java 和 SSL 证书

java - 类型参数 t 具有不兼容的上限 View 和 web View

java - 使用 Android 异步 HTTP 时没有得到响应(来自 loopj)