簡體   English   中英

Java Play FrameWork 2.3使用jackson返回流式Json

[英]Java Play FrameWork 2.3 return streamed Json using jackson

有沒有一種方法可以在我的API響應中流式傳輸Json?

我了解如何通過此示例使用傑克遜庫讀取和寫入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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM