我的程序正在处理一些 JSON 数据。我希望程序随着时间的推移能够真正稳定,并且 JSON 数据可以随着其源的更新和改进而改变。这是从数据中返回一些图像文件名的当前函数:
@Override
public String createImgName() {
try {
// data["image"]["full"]
return getJSONData().getJSONObject("image").getString("full");
}
catch(JSONException e) {
try {
// data["id"] + ".png"
return getJSONData().getJSONObject("id")+".png";
}
catch(JSONException e2) {
return null;
}
}
}
我还可以尝试
其他一些方法来获取图像名称。但程序会变得非常难看。
是否有一种语法可以尝试
多项操作直到其中一项成功?就我而言,return
语句在成功时会中断程序,但情况可能并非总是如此。
最佳答案
您可以使用 .has() 或 .isNull() 方法检查可能的键,而不是使用多个 try 语句。
更多信息: http://www.json.org/javadoc/org/json/JSONObject.html#has(java.lang.String) http://www.json.org/javadoc/org/json/JSONObject.html#isNull(java.lang.String)
例如:
@Override
public String createImgName() {
try {
JSONObject data = getJSONData();
// data["image"]["full"]
if (data.has("image")) {
return data.getJSONObject("image").getString("full");
} else if (data.has("id")) {
return data.getJSONObject("id")+".png";
}
}
catch(JSONException e) {
return null;
}
}
关于java - 我可以在不嵌套 try 语句的情况下尝试多项操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992373/