0

所以我有一个如下的对象结构:

我有一个 Person 对象,它有一个朋友列表(以个人名义命名的朋友) - 该朋友列表有一个地图(命名信息) - 地图有一个“年龄”键和一个字符串值

因此,我希望返回一位朋友的年龄等于 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"); 
4

1 回答 1

0

您需要选择“朋友”链接下具有包含“年龄”等于 20 的信息映射的所有对象。然后您只需要第一个结果。

Friend match = (Friend)JXPathContext.newContext(personInput).getValue("friends[information/age = '20'][1]");
于 2014-01-21T11:16:32.993 回答