消耗一个不是JSON的主体

时间:2016-06-29 06:22:21

标签: java json rest jersey jax-rs

我正在开发基于Jersey REST API的Web应用程序。我正在根据客户端要求(JSON格式的输入参数)开发POST服务,并且工作正常。现在他们想要改变输入格式,如下所示。现在我收到415错误(不支持的媒体类型)。

这是旧的JSON格式,效果很好:

 {
    "weight": 5.0,
    "length": 1.5,
    "width": 2.7,
    "height": 0.7
}

这是客户端需要发送的格式。

{
weight = 12;
with = 78;
height = 78;
length = 5;
}

这是我的POST服务:

@POST
@Path("/insert")
@Consumes({MediaType.TEXT_PLAIN})
@Produces({MediaType.APPLICATION_JSON})

以前使用

@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})

1 个答案:

答案 0 :(得分:7)

它不再是JSON了。查看http://www.json.org/,您将看到参数名称字符串必须用双引号括起来。因此,您必须决定收听客户端并创建自己的MessageBodyReader来处理此自定义格式,或者告诉客户端他们需要发送有效的JSON。