Java 如何直接从JsonGenerator构建JsonNodes树

Java 如何直接从JsonGenerator构建JsonNodes树,java,json,jackson,Java,Json,Jackson,我已经有了使用JsonGenerator编写JSON的工作流程。现在我需要将此数据传递给另一个进程,该进程期望POJO作为输入并生成JSON。当然,我希望避免构建另一个已经序列化为JSON的数据对象图 我第一次考虑使用@JsonRawValue,但不幸的是,is不起作用,因为注释需要位于属于另一个进程的类的字段上,并且不能更改 但是,如果我将一个JsonNodes树传递给另一个进程,事情就会正常进行。问题是,我能找到的创建JsonNode树的唯一方法是解析流。我想我可以使用现有的生成器为解析器或

我已经有了使用
JsonGenerator
编写JSON的工作流程。现在我需要将此数据传递给另一个进程,该进程期望POJO作为输入并生成JSON。当然,我希望避免构建另一个已经序列化为JSON的数据对象图

我第一次考虑使用
@JsonRawValue
,但不幸的是,is不起作用,因为注释需要位于属于另一个进程的类的字段上,并且不能更改

但是,如果我将一个
JsonNodes
树传递给另一个进程,事情就会正常进行。问题是,我能找到的创建
JsonNode
树的唯一方法是解析流。我想我可以使用现有的生成器为解析器或其他树生成器提供数据


有这样的解决办法吗?我错过了什么?

您必须实现一个累加
JsonToken
s(而不是直接写入字节流)的
JsonGenerator
,以及一个迭代现有
JsonToken
JsonParser
(而不是从字节流解析它们)

更新:Jackson有一个类实现了以下功能:

TokenBuffer t = new TokenBuffer(new ObjectMapper());
t.writeStartObject();
t.writeStringField("message", "Hello!");
t.writeEndObject();
JsonParser parser = t.asParser();

有一个
JsonNodeFactory
。@fge您能详细说明一下吗?
JsonNodeFactory
允许您从头开始创建任何类型的
JsonNode
实例。但您也可以将POJO序列化为JSON。现在还不清楚您到底想要什么?好的,明确表示我想要从生成器直接构建一个JsonNodes树。对不起,我这里有点困惑。。。我不使用
JsonGenerator
,而是使用
JsonNodeFactory
pluntity;)同意!我可以实现一个产生JsonGenerator的JsonNode。我还以为已经有了解决办法呢。再看一眼,瞧!Jackson附带了一个
com.fasterxml.Jackson.databind.util.TokenBuffer
类,该类实现了
JsonGenerator
,并具有一个
asParser()
方法来获取
JsonParser