如何在Servlet中读取json值?

问题描述 投票:-2回答:1

我正在通过邮递员将json作为POST发送到我的网址。

如何在我的servlet doPOST()中读取此json值?

input json:

{
    "token":"ABC123"
}
json servlets
1个回答
0
投票

您的JSON文档可以解析为如下所示的类:

@Data
public class Foo {
    private String token;
}

而且,您可以有一个HttpServlet,然后使用杰克逊的HttpServlet解析JSON:

ObjectMapper

但是,在大多数实际应用中,这不是您应该做的。 Servlet太底层了,并且创建了一些框架来使事情变得容易得多。实际上,大多数这些框架都建立在servlet的顶部。

JAX-RS

在JAX-RS及其实现中(例如Jersey),您将具有以下内容:

ObjectMapper

Spring Web MVC

在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(); } }

© www.soinside.com 2019 - 2024. All rights reserved.