{"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;
}
}
}
请帮我修理一下。提前谢谢。
答案 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
}