javax.json.stream.JsonGenerator:使用生成器

时间:2016-01-20 10:50:30

标签: java json

我需要从Servlet输出JSONP。我正在使用javax.json的JsonStreamer将JSON输出到输出流。要生成JSONP,我需要使用回调函数名称和形成回调调用表达式所需的括号来围绕JSON(回调( json

问题是,关闭JsonGenerator后我打印到流中的内容将丢失。所以我无法用右括号完成JSONP。没有生成异常,代码运行正常。

下面是(命令行java上下文中的演示代码,以便于测试)。

这是一个错误还是我忽略了什么?

package mvu.test.jsonstreamer;

import java.io.OutputStream;
import java.io.PrintStream;

import javax.json.Json;
import javax.servlet.ServletOutputStream;

public class JsonGeneratorTest {
    public static void main(String[] args) {
        PrintStream outstream = System.out;

        outstream.print("callbackFunc(");  // shown

        Json.createGenerator(outstream)
            .writeStartArray()
            .write("a string in an array")
            .writeEnd()
            .close();

        outstream.println(");");     // THIS IS LOST
    }
}

1 个答案:

答案 0 :(得分:0)

根据JsonGenerator.close() documentation,调用close()方法会关闭基础输出源,或者在本例中为outstream