您可以执行以下操作:
Java 模型
People
你可以在你的对象模型中引入一个新类。
人们
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlRootElement(name="People")
@XmlAccessorType(XmlAccessType.FIELD)
public class People {
@XmlElementRef
private List<Person> person;
}
人
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="Person")
public class Person {
}
RESTful 服务
代替:
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Person> read() {
你会这样做:
@GET
@Produces(MediaType.APPLICATION_JSON)
public People read() {
默认情况下 MOXy 不会包含根元素。使用 Jersey 时,您可以利用该MoxyJsonConfig
对象(请参阅:http ://blog.bdoughan.com/2013/06/moxy-is-new-default-json-binding.html )。
import javax.ws.rs.ext.*;
import org.eclipse.persistence.jaxb.JAXBContextProperties;
import org.glassfish.jersey.moxy.json.MoxyJsonConfig;
@Provider
public class MOXyJsonContextResolver implements ContextResolver<MoxyJsonConfig> {
private final MoxyJsonConfig config;
public MOXyJsonContextResolver() {
config = new MoxyJsonConfig()
.setIncludeRoot(true);
}
@Override
public MoxyJsonConfig getContext(Class<?> objectType) {
return config;
}
}
你也可以利用 MOXy 的MOXyJsonProvider
类来做同样的配置: