java - 解析 JSON - 无法从 JsonObject 获取 boolean 值

标签 java json gson

我一直在努力弄清楚如何用 Java 做一些基本的事情..

我收到了一个对 API 的请求,该请求返回以下 JSON。

{"success": false, "message": "some string", "data": []}

这由以下字符串 result 表示:

JsonObject root = new JsonParser().parse(result).getAsJsonObject();
success = root.getAsJsonObject("success").getAsBoolean();

我需要获取 boolean 值形式的“成功”参数。 getAsBoolean() 调用出错。

java.lang.ClassCastException: com.google.gson.JsonPrimitive cannot be cast to com.google.gson.JsonObject

我做错了什么?如何获取“success”的 boolean 值?

最佳答案

破坏您的代码的原因是您调用了错误的方法...

success = root.get("success").getAsBoolean();

代替

success = root.getAsJsonObject("success").getAsBoolean();

示例:

public static void main(String[] args) {
    String result = "{\"success\": false, \"message\": \"some string\", \"data\": []}";
    JsonObject root = new JsonParser().parse(result).getAsJsonObject();
    boolean success = root.get("success").getAsBoolean();
    }

关于java - 解析 JSON - 无法从 JsonObject 获取 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889026/

相关文章:

Java : Random Position of JButton

java - 如何估计第n个元素的斐波那契递归算法的时间?

java - 过滤时很漂亮的 JSON 导入,但返回整批数据时则不然 + ID 中丑陋的括号

javascript - 在 json 对象中执行 javascript 代码?

java - SwingUtilities.invokeLater、SwingWorker 和 gif 图标动画问题

java - Java 中方法签名中的 Throw 和 Throw 语句之间的区别

json - 如何在远程服务器中进行 mongoimport

java - Gson TypeToken 是如何工作的?

java - GSON 如何决定它在反序列化过程中使用哪个 TypeAdapter?

java - 如何通过更改其中的一个特定字段来创建新的 json 字符串?