Java在jsonarray

时间:2017-07-21 11:37:16

标签: java arrays

{"a":"AAA","b":32.4,"c":34.65},
{"a":"AAM","b":10.8,"c":11.55}

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

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;
    }
  }
}

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

2 个答案:

答案 0 :(得分:2)

问题在于else中的for-loop声明。

删除else块,即

 else { 
         break;
      }

在您的代码中,else块会在第一次迭代时停止for-loop。因为这里"a":"AAA"。由于条件if (symbol.equals("AAM"))false所以else块正在执行,这进一步打破了循环迭代。

答案 1 :(得分:0)

问题在于其他方面的突破,只需将其取出即可。 如果在任何地方,最适合if部分:

if (symbol.equals("AAM")) {
    System.out.println(obj.getDouble("b"));
    break; // or leave it out if there might be a second AAM entry
}