【问题标题】:How to get variable list JSON body in Jersey/Dropwizard?如何在 Jersey/Dropwizard 中获取变量列表 JSON 正文?
【发布时间】:2018-11-21 16:33:11
【问题描述】:

我想以 JSON 格式获取对 Jersey/Dropwizard 后端的 POST 请求的可变参数列表。

考虑 POST 请求中的 json 主体

{
 "tag1" : "tag1" ,
 "parameter" : 
    [ "key1" : "value1", 
      "key2" : "value2" ]
 }

现在参数的长度可能会有所不同,所以我想知道如何访问这些键和值。

我试了块

 @POST
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.APPLICATION_JSON)
  public Response insertJob(
      @PathParam("tag1") String tag1,
      @PathParam("parameter") List<Result> parameters
  ) {

    return Response.ok(resultList).build();

  }

但我得到了错误

No injection source found for a parameter of type public javax.ws.rs.core.Response ....

我想知道我错过了什么注射。顺便说一句,我使用 guice 作为依赖注入器

【问题讨论】:

  • 你能发布关于 Jersey 和 jackson 的配置吗?
  • 我认为不需要任何特殊配置,请尝试在我的答案中使用 POJO 而不是 PathParam(路径参数在 URL 路径中)

标签: java rest jersey dropwizard


【解决方案1】:

如果声明一个简单的 POJO 来映射您的 JSON,Jackson 会做所有事情,就像这样:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<Result> insertJob(MySimplePOJO pojo ) {

    [...]

    return resultList;
}

class MySimplePOJO  {
    public String tag1;
    public List<Result> parameters;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多