可以通过以下方法将JsonObject转换为其相应的类实例:
Pojo pojo = JsonbBuilder.create().fromJson(jsonObject.toString(), Pojo.class)
但是,使用jsonObject.toString()作为另一个包含相同信息的中间表示形式似乎是效率低下的。我需要在对象绑定之前转换jsonObject。那么,是否有更有效的方法来实现来自JsonObject的绑定?
(请注意,我希望用Java 8标准来实现,所以Gson和Jackson不是一个选项,但可能是它的概念)。目前在亚松组中没有答案,所以希望有人能找到这个。Michael也提出了JsonStructure绑定,但目前还没有解决方案。
发布于 2019-04-14 16:40:31
JSON-B1.0标准不可能转换JSON对象<--> POJO。然而,有足够多的人要求它,这当然是我们将考虑的下一个版本的JSON-B。
同时,转换为字符串或使用自定义适配器是您的最佳选择。
-如果您关心JSON的性能,您可以做的第一件事情是缓存Jsonb的实例,即不要每次需要调用JSON/从JSON时调用JsonbBuilder.create(),因为所有的注释扫描和类解析都发生在创建Jsonb实例时。
更新(2019年6月):虽然还没有JSON标准的实现方式,但JSON参考实现Eclipse在这个公关的org.eclipse.yasson.YassonJsonb接口上增加了对此的支持。希望这个函数将包含在下一个版本的JSON规范中。
https://stackoverflow.com/questions/55677292
复制相似问题