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]");