我要发送 java.util.Map<String, Object>
作为 JAX-RS JSON 参数的一部分,
我有以下场景:
@Path("/banner")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class BannerImageService extends BaseServiceFacade<BannerImage, Integer> {
...
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<T> query(MapRequestBeanVO mapRequestBeanVO) {
try {
return getService().search(mapRequestBeanVO.getQuery(), mapRequestBeanVO.getParams());
} catch (ServiceException e) {
serviceException(e);
} catch (Exception ex) {
logException(ex);
}
return null;
}
...
public class MapRequestBeanVO extends BaseSemanticNamedVO<Integer> {
private String query;
private Map<String, Object> params;
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public Map<String, Object> getParams() {
return params;
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
}
我目前正在为 JAX-RS 运行 Glassfish4 Jersey 实现 我应该包括第三方库来完成这项工作(Moxy - Jackson)吗?或者 JAXB 会处理它吗?什么是最佳选择?
最佳答案
我发现的最佳方法是拥有所有对象字符串,然后在需要时在服务器端相应地处理它们,这样类就会变成类似这样的东西:
public class MapRequestBeanVO extends BaseSemanticNamedVO<String> {
private String query;
private Map<String, String> params;
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public Map<String, Object> getParams() {
return params;
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
}
关于java - JAX-RS 使用 Map<String, Object> 作为 JSON 请求的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22184711/