gpt4 book ai didi

java - 如何使用 Java 处理 JSON 响应中的可选键

转载 作者:行者123 更新时间:2023-12-02 12:03:19 25 4
gpt4 key购买 nike

"app":{  
"icon":{
"icon":"TOP_RATED"
},
"message":{
"_type":"TextSpan",
"text":"Top Rated"
}
}

我一直在我继承的项目之一中看到以下代码。上面的JSON响应解析如下

// itemObject has the entire json response
// appObject is a POJO with icon, type fields
String icon= JsonPath.with(itemObject).getAsString("icon/icon");
appObject.setIcon(icon);

String type = "";
try {
type = JsonPath.with(itemObject).getAsString("message/_type");
catch(IllegalArgumentException e) {
// do nothing if type is not found in response
} finally {
// set type to empty string if it's not found
appObject.setType(type);
}

在这种情况下,当特定应用程序不存在 _type 时,最好用 try/catch block 包围它,如上所示?使用 try/catch/finally block 来处理业务逻辑而不是错误处理似乎是错误的。有什么更好的方法可以做到这一点,Java 8 可选可以帮助解决这个问题吗?

最佳答案

我发现 org.json 包简单明了。发现here 。例如,org.json.JSONObject 类包含 public boolean has(String key) 方法,该方法用于检查某个键是否存在。

Returns true if this object has a mapping for name. The mapping may be NULL.

您可以通过这种方式进行检查,其中 'HAS' - 如果该对象具有名称映射,则返回 true。映射可能为 NULL。

     if (json.has("status")) {
String status = json.getString("status"));
}
if (json.has("club")) {
String club = json.getString("club"));
}

You can also check using 'isNull' - Returns true if this object has no mapping for name or if it has a mapping whose value is NULL.

 if (!json.isNull("club"))
String club = json.getString("club"));

http://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)

关于java - 如何使用 Java 处理 JSON 响应中的可选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47082322/

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