首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用JSON数据对泽西rest服务进行post ajax调用?

如何使用JSON数据对泽西rest服务进行post ajax调用?
EN

Stack Overflow用户
提问于 2014-02-11 10:50:17
回答 3查看 8.1K关注 0票数 1

我经历过这个link。但这帮不了我。

我使用的是运动衫库v1.17.1。我的球衣休息服务:

代码语言:javascript
复制
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(@QueryParam("param1")String param1)
{
    return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

网址是:/test/post1

我的ajax调用:

代码语言:javascript
复制
var d = {"param1":"just a dummy data"};
    $.ajax({
        type : "POST",
        url : "http://localhost:7070/scl/rs/test/post1",
        contentType :"application/json; charSet=UTF-8",
        data : d,
        dataType : "json"
    })
    .done(function(data){
        console.log(data);
    })
    .fail(function(data){
        console.log(data);
    });

它击中了我的rest服务,但是作为param1,我总是得到null值。另一种解决方案是使用JavaBean添加@XMLRootElement,这将将java对象封送/解封送至json,反之亦然,但我不想使用它。

是否有任何方法可以使用适当的注释(如@QueryParam或类似的注释)来发布和接收数据?请帮帮忙

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-11 15:01:54

服务器端代码应该如下所示:

代码语言:javascript
复制
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(Data param1)
{
    return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

其中,Data是一个带有@XmlRootElement注解的(POJO)类,对应于客户端将发送的JSON数据(即,有一个带有getter和setter的param1字段)。JAX实现将将POST的主体解锁为Data的实例。

@QueryParam注释用于检索(通常) GET请求中的查询参数。Query是问号(?)后面的参数。当处理以下请求时,@QueryParam("start") String start将被设置为1GET http://foo.com/bar?start=1,但这不是在您的情况下所做的,AFAICS。

票数 4
EN

Stack Overflow用户

发布于 2014-03-19 08:55:29

代码语言:javascript
复制
You can simply take Post dat as a string and then you can parse it using JSONObject.
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
    public Response postStrMsg(String msg) {
        String output = "POST:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }
票数 1
EN

Stack Overflow用户

发布于 2014-02-11 11:53:19

@XMLRootElement就是这样做的,因为在您可以使用它的任何元素之前,必须对json进行解封处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21699745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档