【发布时间】:2014-12-22 15:49:41
【问题描述】:
我正在使用 Vert.x 为我的 Java 类数据库服务制作一个 REST api。 将 JSON 结果作为 String 写入请求的流中并不太难,如下所示:
...
routeMatcher.get("/myservice/api/v1/query/:query", req -> {
// get query
String querySring = req.params().get("query");
Query query = jsonMapper.readValue(querySring, Query.class);
// my service creates a list of resulting records...
List<Record> result = myservice.query(query);
String jsonResult = jsonMapper.writeValueAsString(result);
// write entire string to response
req.response().headers().set("Content-Type", "application/json; charset=UTF-8");
req.response().end(jsonResult);
});
...
但是我想使用 Jackson 的方法将 Java 列表流式传输到请求对象:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(Outputstream, result);
但我不知道如何将 Jackson 的 Outputstream 参数连接到 Vert.x 的 re.response(),因为他们有自己的 Buffer 系统,似乎与 Jackson 的 java.io.Outputstream 参数不兼容。
我不能将 Jackson 与 Vert.x 结合使用吗?我应该使用 Vert.x 自己的JSON library 手动编写自定义序列化程序吗?其他建议?
【问题讨论】:
标签: java json stream jackson vert.x