如何使用 Spring 批处理将 DB 的输出写入 JSON 文件?

How to write the output from DB to a JSON file using Spring batch?

我是 spring 批处理的新手,我需要从数据库读取数据并写入 JSON 格式。最好的方法是什么?有 api 吗?或者我们需要编写自定义编写器?或者我需要使用 JSON 库,例如 GSON 或 JACKSON?请指导我...

要从关系数据库读取数据,您可以使用 spring-batch-samples 存储库中的 database readers. You can find an example 之一。

要写入 JSON 数据,Spring 批处理 4.1.0.RC1 提供了 JsonFileItemWriter 允许您将 JSON 数据写入文件。它与 JsonObjectMarshaller 协作将对象编组为 JSON 格式。 Spring Batch 提供对 Gson 和 Jackson 库的支持(您需要在类路径中拥有您想要使用的库)。您可以找到更多详细信息 here.

希望这对您有所帮助。

如果您的数据库支持 JSON,则不需要 GSON 或 Jackson 库。

示例:在 SQL 服务器中,有一个选项可以将数据作为 JSON 字符串而不是结果集从数据库中获取。

参考 - https://docs.microsoft.com/en-us/sql/relational-databases/json/format-query-results-as-json-with-for-json-sql-server?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/relational-databases/json/format-nested-json-output-with-path-mode-sql-server?view=sql-server-2017

示例 - select (select * from tableName for json path) as jsonString;

这已经为您提供了 JsonString 格式的输出,您可以将其写入文件。