Как я могу получить значение элемента «itemid», у которого есть логин «peter» и статус «SLEEP», используя потоки в Java? В моем проекте уже есть библиотека Джексона и классы POJO.
[
{
"itemid": "bf47",
"name": "test",
"workers": [
{
"user": {
"id": "7074",
"login": "john",
},
"status": [
{
"name": "WORK"
}
]
},
{
"user": {
"id": "1237",
"login": "peter",
},
"status": [
{
"name": "WORK"
},
{
"name": "SLEEP"
}
]
}
],
},
{
"itemid": "ea277",
"name": "test",
"workers": [
{
"user": {
"id": "2ce0",
"login": "robert"
},
"status": [
{
"name": "WORK"
}
]
}
],
}
]
Я попробовал следующим образом, но это не сработало:
String id = Arrays.stream(allItemId).flatMap(x->x.getworkers().stream())
.filter(x->x.getUser().getLogin().equals(peter))
.flatMap(x->x.getStatus().stream())
.filter(x->x.getName().equals("SLEEP")).map(x->x.getItemId).findFirst().get();
Подробнее здесь: https://stackoverflow.com/questions/783 ... va-streams