java - 如何使用流而不是循环来迭代 jsonarray?
问题描述
我已经完成了for 循环,但我想在流和过滤器的帮助下循环Streams.stream(jsonArray).filter(....)
。
下面是我的代码:
JSONArray jsonArray = jsonObject.getJSONArray("Values");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
if (jsonObj.getString("code").equalsIgnoreCase("sale")) {
if ("1".equals(jsonObj.getString("value"))) {
logger.info("Found");
} else {
logger.info("Not Found!");
}
}
}
解决方案
由于org.json.JSONArray
implements Iterable<Object>
,您可以使用
Stream<Object> stream = StreamStreamSupport.stream(a.spliterator(), false);
从中获取流。然后,您可以对此使用通常的流操作。
推荐阅读
- oracle - 通过过程更新 Oracle 主表中第二个表的列
- python - python - 根据列值重复pandas DataFrame中的行,并在每个重复行中添加1天
- go - 如何在模型中获取用户输入以在 Beego 中构建查询
- c# - 如果使用 Linq 和实体框架的数据库中已经存在用户名,如何将值更新 1
- maven - 是否可以使用 Maven 和 Junit 5 从 yaml 资源中获取配置文件属性?
- c++ - 无法将字符串转换为浮点数
- python - 使用其他类动态更改类初始化的最佳方法是什么?
- ios - 重新加载tableview而不滚动
- javascript - 在文档外单击后释放 keydown 时不会触发 Keyup 事件
- javascript - 从数据库中获取数据 (mssql)