如果我的结果对象有多个值,则返回一个数组作为json。但是如果我的结果对象只有一个值,则将对象作为json返回。我不想返回单个对象。我一直想要返回一个数组。
我的代码如下:
@Service
@Path("/item")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Scope("request")
public class MyResource {
@GET
@Path("/ac")
public List<ACResult> getACResults(@QueryParam("term") String term) {
List<MyResultClass> result = new ArrayList<>();
...
return result;
}
}
我使用球衣1.18.3
当单个对象存在时,如何始终将数组而不是对象作为json返回?
答案 0 :(得分:0)
我的问题解决了。我在项目中添加了新课程如下:
@Provider
public class JAXBContextResolver implements ContextResolver<JAXBContext> {
private JAXBContext context;
private final Class[] types = {MyResultClass.class};
public JAXBContextResolver() throws Exception {
this.context = new JSONJAXBContext(JSONConfiguration.mapped().arrays("myJsonKey").build(), types);
}
@Override
public JAXBContext getContext(final Class objectType) {
for (Class type : types) {
if (type == objectType) {
return context;
}
}
return null;
}
}