如何将Java对象作为JSON(jackson)流式传输到http响应(Jersey)?

时间:2017-03-21 13:49:08

标签: json rest stream jersey jackson

我正在使用由Jersey和Jackson提供支持的JSON REST API的Java服务器上工作。代码归结为类似的东西:

@GET
@Path("/data")
@ManagedAsync
public void getData(@Suspended final AsyncResponse response) {
    Stream<MyDataObject> dataStream = myDataBase.getData();

    // How to stream the data to the client 
    // instead of collecting it in a List first?
    List<MyDataObject> data = dataStream.collect(Collectors.toList());

    response.resume(Response.ok(data).build());
}

我们希望将结果流式传输到客户端,而不是在List中收集数据,因为对象的数量可能很大。通过google和stackoverflow上的搜索,我发现我可能需要StreamingOutput,但我不知道如何通过杰克逊连接到泽西岛。

简而言之:如何将数据库中的结果直接流式传输到客户端?

0 个答案:

没有答案