如何让Java数据类库用户自主选择JSON解析框架?
如何让API数据类库与JSON解析框架解耦?
我正在开发一款用于调用Web API的Java库,该库仅包含符合API规范的数据结构类,API调用逻辑会放在另一独立库中。Java企业应用里有JSON-B、Jackson等多种JSON解析框架,我希望这个数据类库能和底层JSON实现完全解耦。
假设我的库中有一个Article基础类:
public class Article { String id; String headline; String content; }
适配JSON-B框架
要让该类支持JSON-B,需要添加对应的注解,并引入jakarta.json.bind:jakarta.json.bind-api依赖:
public class Article { @JsonbProperty("id") String id; @JsonbProperty("headline") String headline; @JsonbProperty("content") String content; }
适配Jackson框架
要让该类支持Jackson,需要添加Jackson的注解,并引入com.fasterxml.jackson.core:jackson-annotations依赖:
public class Article { @JsonProperty("id") String id; @JsonProperty("headline") String headline; @JsonProperty("content") String content; }
我注意到Quarkus提供了针对不同JSON框架的专用模块,比如quarkus-resteasy-reactive-jsonb和quarkus-resteasy-reactive-jackson,但这些模块不需要处理POJO的序列化逻辑。我考虑把自己的库拆成三个模块:基础版、JSON-B版、Jackson版,但不清楚如何避免大量类和依赖的重复或冗余扩展。
内容的提问来源于stack exchange,提问作者Franz Wimmer
相关产品推荐
相关产品推荐

