0

我使用球衣并在我的 Resource 类中有一个具有多个参数的方法。这些参数是使用填充的,@FormParam但问题是,参数的类型是自定义 java 类型,而不是一些原语或String. 我想将参数的值从转换json为自定义 java 类型。如果我使用@Cosume(MediaType.APPLICATION_JSON),那么我不能使用多个参数,如果我删除它,参数不能从 json 转换为它们的 java 实例。

@POST @Path("/add")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public String add(@FormParam("source") BookEntity source, @FormParam("author") AuthorEntity a) throws JsonGenerationException, JsonMappingException, IOException, TransformationException
{
        ...
}

如果我将参数类型更改为String然后使用 Jackson 反序列化,我可以将 json 参数反序列化为 java 实例,但我也想为其他方法执行此操作并自动完成。

我尝试使用自定义 Java 类型中使用的方法来使用请求参数,但我无法使其工作。

4

1 回答 1

0

您可以使用自定义类型映射器。

看到这个答案

无论如何,默认情况下 Jersey 会尝试使用 JAXB 映射接收到的 json 对象表示。显然你必须注释你的对象。

于 2013-07-04T21:34:39.387 回答