Java restful Web服务 - 一起发送响应和Id

时间:2015-01-20 17:42:26

标签: java web-services jax-rs

在用户调用我的webservice时,我在数据库中插入记录并生成自动增量键。 我想以下列格式发送回复:

    {
    "status" : "success",
    "autogenerated_id" : 1

    }

以下是我的代码和o / p

WsResponse resp = new WsResponse();
resp.setStatus("success");
resp.addData("autogenerated_id", autogenerated_id);

回应是:

 {
        "status": "success",
        "response": {
            "autogenerated_id": 8
        }
    }

我可以更改哪些内容,以便将autogenerated_id置于与状态相同的级别? 或者我可以将文本“响应”更改为“数据”之类的任何其他文本吗?

1 个答案:

答案 0 :(得分:1)

你无法做你想做的事,原因很简单。 您看到的对象是与HTTP连接相关的响应对象(200-> OK,404->未找到,500>内部服务器错误等),而不是来自数据库过程的结果状态。 除此之外,您可以发回任何您喜欢的内容,但它必须位于响应对象内。 它看起来应该是这样的

{
        "status": "success", //result of the connection.
        "response": {
            "status": "success", //result of the db procedure.
            "autogenerated_id": 8
        }
    }

使用不同的格式和编码将返回的对象转换为字符串,然后将其发送回客户端(在您的情况下为json)。 客户端是将字符串转回对象的人。 如果您正在打印响应对象,则无法更改它。但是,如果要打印从服务器接收的数据,则可以根据需要返回不同的对象。