【发布时间】:2021-11-01 21:19:03
【问题描述】:
我想将来自 HttpRequest(JSON 对象)的响应作为流处理。这意味着仅过滤我感兴趣的 data 字段并将其作为流返回并进一步处理(作为 HttpServletResponse 发送)。我不想将它加载到内存中,因为 response.body() 可能很大(1 000 000 多行)。不幸的是,我在 JsonParser 类上没有看到任何会返回流的方法。
HttpResponse<InputStream> response = client.send(httpRequest, BodyHandlers.ofInputStream());
InputStream result = response.body();
JsonFactory factory = new JsonFactory();
try(JsonParser parser = factory.createParser(result)){
while (parser.nextToken() != JsonToken.END_OBJECT) {
if ("data".equals(parser.getCurrentName())) {
parser.getValueAsString(); // it returns correct lines but as String
}
}
}
有人知道怎么处理吗?或者我应该使用其他一些库/API?
【问题讨论】:
-
cassiomolin.com/2019/08/19/… 可能是什么东西?
-
@Sam 我看到了。在此示例中,它展示了如何使用 ObjectMapper 或通过创建新对象的实例将 Json 对象解析为某个 Java 对象。我的目标是不将此数据加载到内存(不创建对象),而是将其作为流读取并进一步发送