我正在通过邮递员将json作为POST发送到我的网址。
如何在我的servlet doPOST()中读取此json值?
input json:
{
"token":"ABC123"
}
您的JSON文档可以解析为如下所示的类:
@Data
public class Foo {
private String token;
}
而且,您可以有一个HttpServlet
,然后使用杰克逊的HttpServlet
解析JSON:
ObjectMapper
但是,在大多数实际应用中,这不是您应该做的。 Servlet太底层了,并且创建了一些框架来使事情变得容易得多。实际上,大多数这些框架都建立在servlet的顶部。
在JAX-RS及其实现中(例如Jersey),您将具有以下内容:
ObjectMapper
在Spring Web MVC中,这是您可以拥有的:
@WebServlet("/foo")
public class FooServlet extends HttpServlet {
private ObjectMapper mapper = new ObjectMapper();
@Override
protected void doPost(HttpServletRequest req,
HttpServletResponse resp) throws IOException {
Foo foo = mapper.readValue(req.getInputStream(), Foo.class);
// Do something with foo
resp.setStatus(HttpServletResponse.SC_OK);
}
}
有关JAX-RS和Spring Web MVC之间差异的详细信息,请参考此@Path("/foo")
public class FooResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response doSomethingWithFoo(Foo foo) {
// Do something with foo
return Response.ok().build();
}
}
。