我有一段代码正在搜索JSON文件以便找到匹配项,一旦找到匹配项,就会将JSON文件中的关联值分配给变量currentLocation
。我问的问题是如何将此值分配给currentLocation
并在while循环之外访问它?
代码块:
String currentLocation = null;
try {
JsonReader jsonReader = new JsonReader(new FileReader("src/resources/objectLocation.json"));
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String nameRoot = jsonReader.nextName();
if (nameRoot.equals("locations")) {
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String name = jsonReader.nextName();
jsonReader.beginObject();
while (jsonReader.hasNext()) {
String n = jsonReader.nextName();
n = jsonReader.nextString();
if (n.equals(currentObject)) {
currentLocation = name;
}
}
jsonReader.endObject();
}
jsonReader.endObject();
}
}
jsonReader.endObject();
jsonReader.close();
}
catch (Exception e) {
}
return currentLocation + " " + currentObject;
根据我的理解,正在发生的事情是我正在寻找的值被分配给currentLocation
确定但是它超出了我尝试访问它的范围,因此返回null。
我尝试将其声明为:
final String currentLocation;
然后给出了错误variable currentLocation might be assigned in a loop
当然是错误的。
如何在返回参数中的while循环中访问currentLocation
的值?
答案 0 :(得分:0)
可能会抛出异常,请检查您的阻止块。如果没有异常,则应返回更新的currentLocation值。