gpt4 book ai didi

java - 如何修复 'JsonNull cannot be cast to JsonObject'

转载 作者:行者123 更新时间:2023-12-02 02:53:04 26 4
gpt4 key购买 nike

我调用了一个 post API,它会响应特定地址的详细信息,但是返回的某些响应没有数据,因此它们将返回为 null。如何停止代码中的转换错误?

我目前仅获取 Json 对象形式的数据,并且我不知道如何修改我的代码,因此当返回 JsonNull 元素时我可以处理该数据。

JsonElement element = new JsonParser().parse(jsonString);
JsonObject jsonObject = element.getAsJsonObject();
jsonObject = jsonObject.getAsJsonObject("response"); // This is either an object or it is null

String buildName = jsonObject.get("buildingName").getAsString();
String buildNum = jsonObject.get("premisesNumber").getAsString();
String streetName = jsonObject.get("streetName").getAsString();

我期望返回的是有效地址的地址详细信息或无效地址的任何信息。

产生的错误是这样的:java.lang.ClassCastException:com.google.gson.JsonNull 无法转换为 com.google.gson.JsonObject

最佳答案

在 getAsString() 之前检查 isJsonNull()。如果对象为 Null,则返回 true。

您可以按如下方式重写代码

String buildName= (jsonObject.get("buildingName").isJsonNull ?  null : jsonObject.get("buildingName").getAsString());

关于java - 如何修复 'JsonNull cannot be cast to JsonObject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57095630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com