在Java中使用数据库动态构建JSON

在Java中使用数据库动态构建JSON,java,json,jsonschema,Java,Json,Jsonschema,我正试图基于RDBMS返回的结果集构建一个JSON对象。ResultSet中的每一行表示一个对象,我们希望将其作为JSON的一部分添加到数组中。我们在另一个文件中定义了JSON模式,我正试图找出如何基于预定义模式构建JSON 老实说,我不确定这是否是最好的方法。当我第一次研究如何实现这一点时,我正在研究JsonObjectBuilder,但是由于涉及的字段太多,它会变得非常混乱 我认为我的最佳选择可能是创建一个POJO来保存来自ResultSet的数据,然后使用JacksonObjectMapp

我正试图基于RDBMS返回的结果集构建一个JSON对象。ResultSet中的每一行表示一个对象,我们希望将其作为JSON的一部分添加到数组中。我们在另一个文件中定义了JSON模式,我正试图找出如何基于预定义模式构建JSON

老实说,我不确定这是否是最好的方法。当我第一次研究如何实现这一点时,我正在研究
JsonObjectBuilder
,但是由于涉及的字段太多,它会变得非常混乱

我认为我的最佳选择可能是创建一个POJO来保存来自ResultSet的数据,然后使用Jackson
ObjectMapper
将其转换为所需的JSON格式

简言之:

  • 如何基于模式动态创建JSON对象,并用数据库查询的结果填充该对象
  • 如果这不可行或效率不高,那么动态创建一个JSON对象(使用数据库查询结果填充并遵循特定格式)的更好/最好的方法是什么

  • 考虑退出JDBC游戏。 MyBatis和Hibernate(可能还有其他LIB)比使用roll-your自己的解决方案做得更好。 我建议MyBatis用于简单的东西,如果您需要MyBatis中没有的功能,请使用Hibernate


    记住这一点。为MyBatis查询的结果创建一个POJO,然后使用Jackson(或gson或其他一些JSON库)创建JSON。

    您需要JSON的具体用途是什么?如果我正确理解了这个问题,一个可序列化的POJO将起作用,JSON将被发布到另一个端点,以便处理/插入到另一个数据库中。这就是为什么它必须遵循特定的格式。我猜你必须坚持使用RDBMS?如果是这样的话,那么DB->POJO->JSON是最好的选择。