Java在jsonarray中获取特定数据

Java在jsonarray中获取特定数据,java,arrays,Java,Arrays,我使用JSONArray获得上面的JSONArray。如果a:AAM,我想使用此代码获取数据b:10.8 请帮我修一下。提前感谢。问题在于for循环中的else语句 移除else块,即 public static void main(String[]args) throws Exception{ String get = sql.getQuote(); JSONArray jsonarray = new JSONArray(get); for (int i = 0; i<js

我使用JSONArray获得上面的JSONArray。如果a:AAM,我想使用此代码获取数据b:10.8

请帮我修一下。提前感谢。

问题在于for循环中的else语句

移除else块,即

public static void main(String[]args) throws Exception{ 
  String get = sql.getQuote();
  JSONArray jsonarray = new JSONArray(get);
  for (int i = 0; i<jsonarray.length();i++){
    JSONObject obj = jsonarray.getJSONObject(i);
    String symbol = obj.getString("a");
    if (symbol.equals("AAM")){
      double price = obj.getDouble("b");
      System.out.println(price);
    } else { 
      break;
    }
  }
}

在代码中,else块在第一次迭代时停止for循环。因为这里a:AAA。由于条件if symbol.equalsAAM为false,因此else块正在执行,从而进一步中断循环迭代。

问题在于else中的中断,只需将其取出即可。 如果在任何地方,则最适合在If部分:

 else { 
         break;
      }

你的代码怎么了?它不工作,或者抛出异常,或者您无法编译它。描述您的问题。您的代码检查第一个元素,然后如果它不是以a开头的元素,则退出循环。上面的代码无法获取10.8的数据。但下面有一个答案。谢谢你的评论。
 else { 
         break;
      }
if (symbol.equals("AAM")) {
    System.out.println(obj.getDouble("b"));
    break; // or leave it out if there might be a second AAM entry
}