所以我有一个像下面这样的对象结构:
我有一个Person对象,其中包含一个Friends列表(在Person中名为friends) - 那个朋友列表有一个地图(命名信息) - 地图的密钥为'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");
答案 0 :(得分:0)
您需要选择“朋友”链接下的所有对象,这些对象的信息图包含“年龄”等于20.然后您只需要第一个结果。
Friend match = (Friend)JXPathContext.newContext(personInput).getValue("friends[information/age = '20'][1]");