如何使用流而不是循环来迭代jsonarray?

时间:2019-09-17 08:44:18

标签: java java-8 java-stream

我已经完成了 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!");
    }
  }
}

1 个答案:

答案 0 :(得分:0)

由于org.json.JSONArray实现了Iterable<Object>,因此您可以使用

Stream<Object> stream = StreamStreamSupport.stream(a.spliterator(), false);

从中获取流。然后,您可以对此使用通常的流操作。