【发布时间】:2019-09-03 09:26:26
【问题描述】:
如何根据JSONArray 的值过滤列表?
JSONArray 的元素是简单的 json 结构,带有键和值。
JSONArray 来自包 org.json 并使用此依赖项
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
我到达端点时得到的字符串响应就是这样解析的
String response = [{"ID": 1,"updatedAt": "2019-04-12T09:09:48"},{"ID": 2,"updatedAt": "2019-04-12T09:09:48"}
JSONArray jsonArray = new JSONArray(response)
我要过滤的列表包含 json 字符串列表List<String> eventDataSetList
现在我如何使用来自 jsonArray 的键 ID 的值以比这更好的方式过滤列表?
这是我到目前为止所做的,但我真的不想使用嵌套循环:
Map<Object, String> filteredEvents = new HashMap<>();
for (String event : eventDataSetList) {
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
if (event.contains(jsonObject.getString("ID"))) {
filteredEvents.put(jsonObject, event);
}
}
}
【问题讨论】:
-
jsonArray是什么类型?是数组还是列表? -
@samuel Phillipp 它是一个数组。很抱歉错过了
标签: java arrays json lambda collections