XML与自定义包装器在Java上编组



考虑以下pojo:

public class User {
    private String name;
    /* + getter/setter */
}

和以下REST Web服务:

@Path("Department")
public class DeptoREST {
    @GET @Path("{id}")
    public List<User> getEmployeesList( Integer id ) {
        return dao.fetchEmployeesFromDepto( id );
    }
}

这是结果的输出:

<users>
    <user><name>Usr 1</name></user>
    <user><name>Usr 2</name></user>
    <user><name>Usr 3</name></user>
</users>

没有包装器类,是否可以将Ouput更改为:

<employees>
    <employee><name>Usr 1</name></employee>
    <employee><name>Usr 2</name></employee>
    <employee><name>Usr 3</name></employee>
</employees>

您可以包装列表,而不是单个User对象:

@XmlRootElement(name="employees")
public static class EmployeeList {
    @XmlElement(name = "employee")
    private List<User> users;
    public EmployeeList() {
        users = Collections.emptyList();
    }
    public EmployeeList(List<User> users) {
        this.users = users;
    }
    public List<User> getUsers() {
        return users;
    }
}

然后:

return new EmployeeList(dao.fetchEmployeesFromDepto( id ));

最新更新