jxPath Получение объекта из списка на основе значения в карте

Итак, у меня есть объектная структура, подобная следующей:

У меня есть объект Person, у которого есть список друзей (именованных друзей лично). У этого списка друзей есть карта (именованная информация). У карты есть ключ 'age' и значение строки.

Итак, я хочу вернуть одного друга, где возраст этого друга равен, скажем, 20

public class Person {
    private List<Friend> friends;

    public List<Friend> getFriends() {
        return friends;
    }

    public void setFriends(List<Friend> friends) {
        this.friends = friends;
    }
}


public class Friend {
    private Map<String, Object> information;

    public Map<String, Object> getInformation() {
        return information;
    }

    public void setInformation(Map<String, Object> information) {
        this.information = information;
    }
}

Вот что я думал, но не смог заставить его работать, пожалуйста, дайте мне знать, если я что-то упустил

Friend match = (Friend)JXPathContext.newContext(personInput).getValue("friends/information[@name='age' = '20']//friend"); 

1 ответ

Вам нужно выбрать все объекты по ссылке "друзья", которые имеют информационную карту, в которой "возраст" равен 20. Тогда вам нужен только первый результат.

Friend match = (Friend)JXPathContext.newContext(personInput).getValue("friends[information/age = '20'][1]");
Другие вопросы по тегам