使用GSON将对象序列化为JSON输入流?

时间:2015-12-18 21:06:34

标签: gson

我不确定我是否要求正确的事情,但是有可能让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实例中。

我认为编写CharSequenceInputStream适配器并摆脱创建字节数组克隆并不是一个大问题,但我仍然无法摆脱生成字符串临时缓冲区以有效地使用inputStreamConsumer。所以,我期待的是:

try ( final InputStream inputStream = gson.toJsonInputStream(value) ) {
    inputStreamConsumer.accept(inputStream);
}

是否有可能以某种方式使用GSON?

1 个答案:

答案 0 :(得分:0)

根据this comment,使用GSON无法做到这一点。