gpt4 book ai didi

java - Jersey POST 方法参数作为类对象

转载 作者:行者123 更新时间:2023-12-02 07:39:13 25 4
gpt4 key购买 nike

我已经使用 jersey 一段时间了,我刚刚实现了一个 POST 方法,该方法获取 Json 作为参数。不过我希望它的功能如下:

 // The json class to be used and returned
@XmlRootElement
public class Container
{
private boolean isOk;
private String message;

public Container() {}

public boolean getOk()
{
return this.isOk;
}

public void setOk(boolean isOk)
{
this.isOk = isOk;
}
}

// A service
@Path("json/test")
public class TestService
{
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Container readAndReturnMessage(Container receivedJson)
{
doSomething(receivedJson.getMessage());
return receivedJson;
}
}

不幸的是,这不起作用。即使传递给服务的原始 json 没有任何问题,所有容器变量都为 null。这里的方法是什么,我是否需要使用 String 作为参数并使用 Jackson/Gson 进行反序列化?

最佳答案

如果您尚未添加任何 header ,则需要在 POST 请求中添加 Content-Type header 。由于您的应用程序正在使用 application/json 您需要添加Content-Type: application/json 以及您的 POST 请求。

如果您的请求正文采用以下形式:{ “容器”: { "isOk": "正确", "message": "新消息" }}您将得到空值。

请求正文的格式应为:{ "isOk": "正确", "message": "新消息"}这工作得很好。

关于java - Jersey POST 方法参数作为类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com