Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAX-RS消费地图<;字符串,对象>;作为JSON请求的一部分_Java_Json_Rest_Hashmap_Jax Rs - Fatal编程技术网

Java JAX-RS消费地图<;字符串,对象>;作为JSON请求的一部分

Java JAX-RS消费地图<;字符串,对象>;作为JSON请求的一部分,java,json,rest,hashmap,jax-rs,Java,Json,Rest,Hashmap,Jax Rs,我想发送一个java.util.Map,作为JAX-RS JSON参数的一部分, 我有以下情况: @Path("/banner") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class BannerImageService extends BaseServiceFacade<BannerImage, Integer> { @Path(“/banner”) @使

我想发送一个
java.util.Map
,作为JAX-RS JSON参数的一部分, 我有以下情况:

@Path("/banner")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class BannerImageService extends BaseServiceFacade<BannerImage, Integer> {
@Path(“/banner”)
@使用(MediaType.APPLICATION_JSON)
@产生(MediaType.APPLICATION_JSON)
公共类BannerImageService扩展了BaseServiceFacade{

@GET
@产生(MediaType.APPLICATION_JSON)
公共列表查询(MapRequestBeanVO MapRequestBeanVO){
试一试{
返回getService().search(mapRequestBeanVO.getQuery(),mapRequestBeanVO.getParams());
}捕获(服务异常e){
服务例外(e);
}捕获(例外情况除外){
logException(ex);
}
返回null;
}

公共类MapRequestBeanVO扩展了BaseSemanticNamedVO{
私有字符串查询;
私有映射参数;
公共字符串getQuery(){
返回查询;
}
公共void setQuery(字符串查询){
this.query=query;
}
公共映射getParams(){
返回参数;
}
公共void setParams(映射参数){
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;
    }       
}
公共类MapRequestBeanVO扩展了BaseSemanticNamedVO{
私有字符串查询;
私有映射参数;
公共字符串getQuery(){
返回查询;
}
公共void setQuery(字符串查询){
this.query=query;
}
公共映射getParams(){
返回参数;
}
公共void setParams(映射参数){
this.params=params;
}       
}
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;
    }       
}
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;
    }       
}