java - JAX-RS 使用 Map<String, Object> 作为 JSON 请求的一部分

标签 java json rest hashmap jax-rs

我要发送 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/

相关文章:

java - 如何在java中将时间字符串与当前时间进行比较?

java - 无法以不同的作业名称和组运行同一类,同时运行

javascript - Json 将每个字符作为一个单独的对象返回?

jquery - 在向 python 应用程序引擎执行 jQuery.post 时,JSON 对象未解码

php - 拉维尔 5.4 : Api route list

java - 如何在 Java 中将 "HH:MM"格式字符串转换为时间戳?

java - 具有 spring 框架支持的 cms

javascript - 如何动态删除嵌套的json键?

java - Java桌面连接云接口(interface)

rest - 如何设计 RESTful 搜索/过滤?