java - @在 REST Web 服务中使用 JSON,每次使用不同数量的 JSON 值

标签 java json rest jax-rs

我想要@Consumes具有 JSON 类型的 REST Web 服务,但 JSON 输入每次保存不同数量的值

{"name":"x","age":23,"language":"java"}

{"name":"c","age":"34","language":"c++","db":"oracle"}

因此输入的 JSON 每次可能会有所不同。如何在 REST 代码中使用这种类型的 JSON?

最佳答案

由于您正在使用 Jersey 并且使用的 JSON 可能包含任意键值对,因此您可以在 Jersey Controller 中尝试类似的操作:

@POST
@Path("/json-map")
@Consumes(MediaType.APPLICATION_JSON)
public SomeSortOfResponse receiveArbitraryJsonMap(Map<String,String> map) {
    // do stuff with map of key-value pairs
}

您的 JSON 应该解码到您可以使用的 Map。

或者,如果您的 JSON 类似于任意字符串列表:

@POST
@Path("/json-list")
@Consumes(MediaType.APPLICATION_JSON)
public SomeSortOfResponse receiveArbitraryJsonList(List<String> list) {
    // do stuff with list
}

您需要为两个端点提供不同的@Paths

关于java - @在 REST Web 服务中使用 JSON,每次使用不同数量的 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620378/

相关文章:

html - 使用 Blogger API 获取的帖子数量限制(错误 400)

rest - 如何使用 Sequelize 查询构建 .json 端点?

java - 使用 Spring 3.1 保护两个网页的密码

java - ibatis域类应该用作javabean吗?

java - 如何使用 Maven 添加多个 .properties 文件作为构建 Artifact ?

javascript - 在新浏览器选项卡上时的最终用户 session

json - 微软 azure 物联网中心: Decode a message from base64 format to 8-utf in message route query

json - R 输出到 JSON 得到 "_row": in objects

c# - 反序列化 NodaTime LocalDate 时出现异常

ios - 我的结构无法解码