我正在尝试将 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[] 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
- 尽管调用了
generator.writeEndObject()
,但最后没有"
- base64 末尾没有
=
或==
- 对象末尾没有
}
为什么会发生这种情况?如何解决这个问题???
最佳答案
需要添加 generator.close()
调用来导致刷新流。
关于java - 为什么 Jackson 没有完成从流创建 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473037/