首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Play Json 2.3使用FrameWork返回流媒体Json

Java Play Json 2.3使用FrameWork返回流媒体Json
EN

Stack Overflow用户
提问于 2015-04-22 23:22:41
回答 1查看 1.1K关注 0票数 0

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

通过这个例子,我理解了如何使用jackson库来读写json文件:

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

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

EN

回答 1

Stack Overflow用户

发布于 2015-04-23 20:15:47

你试过Play's chunked responses吗?

在你的控制器中,你会有一个类似于下面这行的操作:

代码语言:javascript
复制
public Result chunkedJson() {
    return ok(readJsonChunks());
}

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

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29802060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档