gpt4 book ai didi

java - Java中RESTful(WEB SERVICE)POST方法中如何接收json对象

转载 作者:行者123 更新时间:2023-11-30 08:16:12 24 4
gpt4 key购买 nike

这可能是一个有点愚蠢的问题,但我很困惑是否可以在 RESTful webservice 下的 POST 方法中接收 @FormParam 中的 JSON 对象

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/fetch/")
public List<MyObject> getCandidate(@FormParam("CodeList")
List<String> codeList)
{
List<MyObject> myobjects = null;
try {
//some code
} catch (Exception e) {
//some exception if occur
}
return myobjects;
}

如果我想获取表单参数中的用户定义对象怎么办?

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/fetch/")
public List<MyObject> getCandidate(@FormParam("CodeList")
List<MyObject> formMyObjectList)
{
List<MyObject> myobjects = null;
try {
//some code
} catch (Exception e) {
//some exception if occur
}
return myobjects;
}

提前致谢。

最佳答案

这是可能的,但是你需要了解什么是@FormParam,基本上它从特定的html表单接收值,因为你可能知道@FormParam需要知道你想从使用@FormParam的请求中获取的参数是什么("myParam"),如果你想消费json,你需要提供它。所以答案是你不需要使用@FormParam 来使用 JSON

以上意味着您需要发送完整的 json 而不是发送一对键/值属性,显然您需要使用可能的 jquery 甚至 javascript 生成该 json,然后将其发送到您的端点,应该是这样的。

@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/fetch/")
public List<MyObject> getCandidate(MyBean mybean){}

MyBean 类需要包含将在 JSON 中发送的字段。这里的魔法要归功于 MessageBodyReader,你应该在你的类路径中有 jackson,你可以找到一个例子 here .如果您阅读 this 也将是个好主意.

关于java - Java中RESTful(WEB SERVICE)POST方法中如何接收json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28448726/

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