我想要@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/