在多个while循环中为变量赋值

时间:2015-08-19 11:08:02

标签: java json variables while-loop scope

我有一段代码正在搜索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的值?

1 个答案:

答案 0 :(得分:0)

可能会抛出异常,请检查您的阻止块。如果没有异常,则应返回更新的currentLocation值。