Java Play FrameWork 2.3 使用 jackson 返回流 Json



有没有办法在我的 API 响应中流式传输 Json?

我从这个例子中了解如何使用 jackson 库读取和写入 json 文件:

http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/

但是现在在游戏框架中,如何流式传输我的响应或换句话说,返回我的 API 中的内容return ok();

你试过Play的分块响应吗?

在您的控制器中,您将在此行上执行操作:

public Result chunkedJson() {
    return ok(readJsonChunks());
}

readJsonChunks方法中,您实际上创建了块:

public static Chunks<String> readJsonChunks() {
    Chunks<String> chunks = new StringChunks() {
        @Override
        public void onReady(play.mvc.Results.Chunks.Out<String> out) {
            JsonFactory jfactory = new JsonFactory();
            try {
                // Read from file
                JsonParser jParser = jfactory.createJsonParser(new File("c:\user.json"));
                // Loop until token equal to "}"
                while (jParser.nextToken() != JsonToken.END_OBJECT) {
                    // Write all your JSON stuff into out, e.g. with
                    String text = jParser.getText();
                    out.write(text);
                }
                jParser.close();
            } catch (IOException e) {
                out.write("Couldn't open file c:\user.json");
            } finally {
                out.close();
            }
        }
    };
    return chunks;
}
我从未

尝试过这个特定的代码(特别是我从未使用过JsonFactory.createJsonParser-它似乎已被弃用),但我使用类似的东西将日志文件从服务器发送到客户端。

(我正在使用Play 2.2.3)

相关内容

  • 没有找到相关文章

最新更新