【问题标题】:Process json files in spring batch在spring批处理中处理json文件
【发布时间】:2018-09-17 12:29:29
【问题描述】:

我有一个包含多个 json 文件的 zip 文件。我已经解压了它们 然后使用以下代码从 json 获取 POJO 对象:

reader = new BufferedReader(new FileReader(file));
Gson gson = new GsonBuilder().create();
Element[] people = gson.fromJson(reader, Element[].class);

但是我需要使用 spring batch 一个一个地处理这些 json 文件。 有人可以帮助我如何在春季批处理中实现这一点,我想使用 1000 块读取 json 文件 我的 json 对象非常复杂。示例:

{
    "students": {
      "subelements": {
          "dep": {
            "data": [
              "XYZ"
            ]
          }
        }
      }
}

【问题讨论】:

  • 什么代表这个文件中的一个项目?哪个片段对应于Element 类?
  • 元素是主类,包含 id、type 和属性列表
  • elements 是项目列表 ("elements": { })

标签: spring spring-batch


【解决方案1】:

您的数据结构不是开箱即用的 Spring Batch 可以处理的类型之一。在此处查看更多详细信息:https://stackoverflow.com/a/51933062/5019386

所以我认为在您的情况下,您需要创建一个自定义项目阅读器来解析输入文件的特定片段。

【讨论】:

  • 我可以使用 Spring Batch 仅读取项目列表(元素数组)吗?并在读取过程中忽略所有其他 json 数据
  • 不,那是不可能的。您的文件必须采用 [{object1}, {object2}, {object3}] 的形式才能使用 JsonItemReader
  • 那么最好使用json流api?
  • 没错,您的自定义项目阅读器应该使用 json 流 api。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 2019-01-30
相关资源
最近更新 更多