我不确定我是否要求正确的事情,但是有可能让GSON Gson.toJson(...)
方法系列工作在"流媒体模式"在序列化为JSON时?我们可以说,有时会出现无法使用Appendable
的情况:
final String json = gson.toJson(value);
final byte[] bytes = json.getBytes(charset);
try ( final InputStream inputStream = new ByteArrayInputStream(bytes) ) {
inputStreamConsumer.accept(inputStream);
}
上述示例在这种情况下并不完美,因为:
json
作为临时缓冲区。json
字符串生成一个新的字节数组,只是将其包装到ByteArrayInputStream
实例中。我认为编写CharSequence
到InputStream
适配器并摆脱创建字节数组克隆并不是一个大问题,但我仍然无法摆脱生成字符串临时缓冲区以有效地使用inputStreamConsumer
。所以,我期待的是:
try ( final InputStream inputStream = gson.toJsonInputStream(value) ) {
inputStreamConsumer.accept(inputStream);
}
是否有可能以某种方式使用GSON?