java - 如何使用删除向导处理 JSON 负载?

标签 java json jersey dropwizard

我有一个名为 Thing 的简单类

public class Thing {
  private int id
  private String name
  //getters, setters, constructor
}

我想发送一个带有负载的请求并处理它。

请求看起来像这样:

curl -i -d '{"thing": {"id": 11, "name": "foobar"}}' http://localhost:8080/thing/{username}

但我不知道如何处理 json 请求。这就是我的方法:

@Path("/thing/{username}")
@POST
public Thing add(@PathParam("username") String username) {
  //how can I process the JSON payload sent and convert it to Thing object?
}

最佳答案

查看 Jackson .

ObjectMapper mapper = new ObjectMapper();
Thing impl = mapper.readValue(username, Thing.class);

只要 username 是有效的 JSON 并映射到 Thing,这应该可以工作。

注意:您可能需要注释Thing 的类成员或方法。例如,在我的案例中,我必须使用 com.fasterxml.jackson.annotation.JsonManagedReference 来管理循环引用。但是您可以在 API 文档中阅读有关此注释和其他注释的信息。

关于java - 如何使用删除向导处理 JSON 负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20129556/

相关文章:

java - 从网页获取 JSON 响应

javascript - 通过JavaScript从json中获取所有键的值

javascript - 如何按日期计算对象数组中的出现次数

php - 空字符串上的 JSON 解码与 PHP 7 的行为不同

java - 这段代码如何生成该十六进制值?

java - 使用套接字(java)从客户端向服务器发送文件成功,但客户端卡住并且不退出循环

java - Hibernate - 在字段中存储 oneToMany-Relation 中的元素数量? (例如评论数量)

java - Fortify 问题将未经验证的数据发送到 Web 浏览器

java - 如何让我的 Jersey 2 端点在启动时急切地初始化?

java - 如何在 Jersey 2.4 过滤器中获取资源注释?