繁体   English   中英

解析JSON - 无法从JsonObject获取布尔值

[英]Parsing JSON - Can't get boolean value from JsonObject

我一直在试图弄清楚如何在Java中做一些基本的东西..

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

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

这由以下字符串result表示:

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

我需要将“success”参数作为布尔值。 getAsBoolean()调用上获取错误。

java.lang.ClassCastException:com.google.gson.JsonPrimitive无法强制转换为com.google.gson.JsonObject

我究竟做错了什么? 如何获得“成功”的博尔价值?

破坏你的代码的原因是你正在调用错误的方法......

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();
    }

你正在调用root.getAsJsonObject("success")success是一个布尔值本身,而不是一个对象。

试试以下

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

我只想使用root.get(“success”)方法。 成功不是真正的json对象,它是json对象的成员。 请参阅此处https://google.github.io/gson/apidocs/com/google/gson/JsonObject.html#get-java.lang.String-

如果root是jsonObject

root.getBoolean("success");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM