当前位置: 首页 > 知识库问答 >
问题:

JSON中的Jersey REST使用映射

邵飞宇
2023-03-14

我正在尝试使用客户端发送到映射(或JSON对象)中的JSON对象。我使用的是Jersey2.22.1,默认情况下它使用的是Moxy。尝试了如下所示的HashMap,但没有成功。它给出415错误-“不支持的媒体类型”

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Task> addTask(HashMap<String,Object> dynamicParam){

尝试使用自定义类以及包装一个映射。同样的错误。有谁能帮我,让我知道如何处理地图。

@XmlRootElement
public class DynamicFormData {

Map<Object,Object> data;

public Map<Object, Object> getData() {
    return data;
}

public void setData(Map<Object, Object> data) {
    this.data = data;
}

作为临时解决方案,我使用下面代码。但想知道如何正确地使用Map完成此操作

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Task> addTask(String dynamicParam){     
    log.info("addTask Start");
    Gson gson = new Gson();
    Map<String, Object> map = new HashMap<String, Object>();
    map = (Map<String, Object>)gson.fromJson(dynamicParam, map.getClass());

共有1个答案

孙梓
2023-03-14

@consumes({mediatype.application_form_urlencoded})javax.ws.rs.core.multivaluedMap结合使用工作示例:js-client:

function postCalling(){
$.ajax({
    type: 'POST',
    url: "<url>",
    contenttype: "application/json",
    datatype: "json",
    data: {
        'paramOne': 'ONE',
        'paramTwo' : 'TWO'
    },
    success: function (data, status, jqXHR) {
        alert('It worked!: '+JSON.stringify(data));
    },
    error: function (jqXHR, status) {
        alert('didnt work!');

    }
});

泽西岛代码:

@POST
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_FORM_URLENCODED})
@Path("/sample")
 public String getCumGa1Json(MultivaluedMap<String, String> postDataMap) {
    System.out.println(postDataMap.get("paramOne").get(0));
    //prints ONE
    System.out.println(postDataMap.get("paramTwo").get(0));
    //prints TWO
    return toJSon(anObject);
}
 类似资料:
  • 我想将字段类型从“string”更改为“date”(具体格式为“epoch\u second”)。由于无法更新现有索引的映射,因此我需要创建一个新索引,我最想使用现有索引的映射。以下是我正在使用的内容: Curl-XGET'http://localhost:9200/sam/saga/_mapping?pretty' 要将当前索引的映射转储到json文件中,其内容如下: 然后我替换 具有 并将新文

  • 我试图动态解析一些JSON到一个Map 但是当我尝试使用一些更复杂的JSON和嵌套信息时失败了。我试图从json解析示例数据。组织 我得到以下错误 异常在线程"main"com.fasterxml.jackson.databind.JsonMapping异常:不能反序列化实例的java.lang.字符串START_OBJECT令牌 有没有办法将复杂的JSON数据解析成映射?

  • 我有一个JSON字符串: ...我试图映射回POJO: 上面的字符串(我正在尝试映射)实际上包含在一个组织中。json。JSONObject,可以通过调用该对象的方法来获取。 我想使用Jackson JSON对象/JSON映射框架来进行此映射,到目前为止,这是我最好的尝试: 我需要地图绘制者: 完全忽略外部的花括号(“”和“”) 如果唯一的方法是调用的方法,那么就这样吧。但我想知道Jackson是

  • 问题内容: 我有以下JSON表示盐请求的服务器响应: 我尝试使用以下POJO映射它: 现在每次我这样做: 该为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗? 问题答案: 我的变量顺序对Gson映射重要吗? 不,不是这样。 如何使用Gson将JSON映射到POJO? 它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。 您可以使用@Seriali

  • 我有以下JSON来表示salt请求的服务器响应: 我尝试用以下POJO映射它: 每次我这样做: 为空。如何使用GSON将JSON映射到POJO?变量的顺序对Gson映射重要吗?

  • 问题内容: 是否可以仅从JSON树中的特定节点(和“向下”)进行Jackson的解组? 用例是可扩展的文档格式。我想走一棵树,然后将当前路径发布到一组可扩展的插件,以查看用户是否正在使用和知道如何处理该文档部分的插件。 我希望插件作者不必处理API或流API 的底层细节;取而代之的是,只需传递一些上下文和一个特定的,然后就可以使用可爱且方便的方法来解组其类的实例,并将传递的节点视为树的根。 问题答