Java在jsonarray中获取特定数据
我使用JSONArray获得上面的JSONArray。如果a:AAM,我想使用此代码获取数据b:10.8 请帮我修一下。提前感谢。问题在于for循环中的else语句 移除else块,即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
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
}