java - 使用一个不完全是 JSON 的主体

标签 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})

最佳答案

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

关于java - 使用一个不完全是 JSON 的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38091786/

相关文章:

JAVA - 无效数据的自定义错误响应

java - 如何检索 RecyclerView 位置

javascript - 在 Polymer 元素之间传递数组和/或对象数据

json - Swift 4.Decodable + alamofire

json - Swift - 解析数据错误 - Swift.DecodingError.dataCorrupted

rest - 如何在 Go 中编写通用处理程序?

java - 为 scala akka webservice 编写测试用例

java - 从 XSD 将命名空间添加到 XML

java - 如何创建内部类的 Spring Bean?

java - Eclipse Oxygen Java 代码完成不起作用?