消耗一个不是JSON的主体

use*_*753 3 java rest json jax-rs jersey

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

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

 {
    "weight": 5.0,
    "length": 1.5,
    "width": 2.7,
    "height": 0.7
}
Run Code Online (Sandbox Code Playgroud)

这个格式客户端需要发送.

{
weight = 12;
with = 78;
height = 78;
length = 5;
}
Run Code Online (Sandbox Code Playgroud)

这是我的POST服务:

@POST
@Path("/insert")
@Consumes({MediaType.TEXT_PLAIN})
@Produces({MediaType.APPLICATION_JSON})
Run Code Online (Sandbox Code Playgroud)

以前我用过

@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
Run Code Online (Sandbox Code Playgroud)

mar*_*ber 7

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