Java 为什么Jackson没有从流中完成json创建?
我正在尝试将json从流写入另一个具有base64字段的流,如下所示:Java 为什么Jackson没有从流中完成json创建?,java,json,io,jackson,Java,Json,Io,Jackson,我正在尝试将json从流写入另一个具有base64字段的流,如下所示: import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import java.io.File; import java.io.FileInputStream; public class Exmaple { public static void main (String[] ar
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.File;
import java.io.FileInputStream;
public class Exmaple {
public static void main (String[] args) throws Exception {
final JsonGenerator generator = new JsonFactory().createGenerator(System.out);
generator.writeStartObject();
generator.writeFieldName("data");
generator.writeBinary(new FileInputStream(new File("D:\\somePath\\pdf.pdf")), -1);
generator.writeEndObject();
}
}
您可以使用任何文件,而不是pdf.pdf
但我得到了:
{"data":"JVBERi0xLjMKJcfsj6IKMzAgMCBvYmoKPD
- 尽管调用了
生成器,但末尾没有
。writeEndObject()“
- base64末尾没有
或=
=
- 对象末尾没有
}
为什么会发生这种情况?如何解决此问题???需要添加导致刷新流的
生成器.close()
调用。请提供一个。您可能需要关闭JsonGenerator
。是的,关闭-是解决方案:)