使用 Spring Batch 的 Json 数组读取器文件

2024-04-01

我有一个文件作为输入,其中包含 json 数组:

[ {
  ...,
  ...
  },
  {
  ...,
  ...
  },
  {
  ...,
  ...
  }
]

我想在不破坏 Spring Batch 原则的情况下阅读它(与 FlatFileReader 或 XmlReader 相同的方式)

我没有找到任何方法来做到这一点,读者已经在 spring-batch 中实现了。

实现此阅读器的最佳方法是什么?

提前致谢


假设您想要建模StaxEventItemReader因为您想要将 JSON 数组的每个项目作为 Spring Batch 中的项目读取,所以我建议这样做:

  • RecordSeparatorPolicy- 你需要实现你自己的RecordSepartorPolicy这表明您是否已读完全文。您还可以使用RecordSeparatoerPolicy#postProcess清理开头和结尾[]您需要处理逗号分隔符。
  • LineTokenizer- 然后你会想要创建你自己的LineTokenzier解析 JSON。我今天刚刚为一个项目开发一个代码,因此您可以使用该代码作为开始(认为它未经测试):

    public class JsonLineTokenizer implements LineTokenizer {
    
        @Override
        public FieldSet tokenize(String line) {
            List<String> tokens = new ArrayList<>();
    
            try {
                HashMap<String,Object> result =
                        new ObjectMapper().readValue(line, HashMap.class);
    
                tokens.add((String) result.get("field1"));
                tokens.add((String) result.get("field2")));
    
            } catch (IOException e) {
                throw new RuntimeException("Unable to parse json: " + line);
            }
    
            return new DefaultFieldSet(tokens.toArray(new String[0]), {"field1", "field2"});
        }
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring Batch 的 Json 数组读取器文件 的相关文章

随机推荐

  • PhpSerial:没有可用的 stty——似乎无法让它工作

    我正在开发一个项目 涉及使用 Raspberry Pi 上的 UART 引脚读取和写入串行板 然而 我已经碰壁了 任何时候我尝试使用PhpSerial我总是收到错误 致命错误 没有可用的 stty 无法运行 在 var www PHP Se
  • 使用 PDO 准备好的语句插入多行

    我想知道是否可以使用一个准备好的语句插入多行 下面是我通常如何将一行插入数据库的示例 params array params val1 val1 params val2 val2 params val3 val3 sql INSERT IN
  • 在 RDS 上,我可以在只读副本中创建主服务器上不存在的表吗?

    我们有一个单独的 RDS 实例来处理会话状态表 但是发现会话数据库负载非常低 如果我们可以将实例处理会话转换为主数据库的只读副本 那么我们就可以将其用于只读任务 即使副本存在较大滞后 这些任务也是安全的 有没有人在 RDS 上做过类似的事情
  • 在 angular.js 中以实际大小显示图像

    我需要以实际大小显示图像 即使它比其容器大 我尝试了使用 Image 变量的技巧和捕获负载大小 https stackoverflow com a 7686392 196451像这样的东西 HTML div div
  • iPad、iOS8 和 Objective-C 中的 UIAlertController 不显示“取消”按钮

    我正在尝试使用 UIAlertController 我需要一个带有两个按钮的弹出窗口 取消 和 删除并注销 但我只能看到 删除并退出 按钮 看不到取消按钮 这是代码 NSString confirmText Hi UIAlertContro
  • 使用相机拍照并保存到图库

    我已经浏览了几个文档和堆栈 但是我不太确定如何实现这个 帮助或示例代码确实可以帮助我了解更多 这是运行相机的代码集 它工作得很好 我的下一个问题是 如何让它自动保存到手机图库中 Override protected void onCreat
  • CodeIgniter Active Record 从一个表插入到另一个表

    使用 codeigniter 活动记录语法将数据从一个表插入到另一个表的语法是什么 我尝试了通常的 mysqli 查询并且它有效 但我想使用 CodeIgniter Active Record 语法来保持一致性 我尝试使用这些 CodeIg
  • python 二维数组到字典

    我想从表示为二维数组的对称矩阵的下三角创建一个字典 例如 如果 numpy 数组是 array 0 2 3 2 0 4 3 4 0 然后我希望字典看起来像 1 0 2 2 0 3 2 1 4 矢量也有类似的帖子 将 Numpy 数组转换为稀
  • 在javascript中检测字符串的unicode语言

    我有一个包含几个单词的字符串 我想找出所有只包含泰米尔语 Unicode 字符的单词 我是 JavaScript 新手 使用 Go 我做同样的事情 tokens strings Fields stringContent delim spli
  • 是否可以从 Stripe API 获取某个计划的订阅者数量?

    我正在使用 Stripe net 库来调用 Stripe API 我想获得各种计划的订户总数 但我不确定当前的 API 和 或 Stripe NET 库是否可以实现这一点 任何人都可以提供任何关于这是否可能的见解吗 我发现这有效 抱歉 这是
  • 正则表达式 - 格式化块中的文本 - IM

    您好 我正在尝试找出一个正则表达式来替换innerHTML块中的文本 以便为类似于Google IM的操作的文本提供本地格式 Where Italics Inderline Bold Strike 部分条件是文本必须由符号包裹 但如果紧随其
  • 从另一个 android 项目导入的自定义属性

    从我读到的别处 http code google com p android issues detail id 9656 当您将包含的项目的命名空间更改为 xmlns si http schemas android com apk 时 自定
  • 如何通过在python中匹配某些字符来删除字符串中的某些字符

    如果在字符串中找到匹配项 我正在尝试删除字符串的某些部分 如下所示 string Newyork NY 我想从字符串中删除逗号后面的所有字符 包括comma 如果字符串中存在逗号 谁能告诉我现在该怎么做 Use split http doc
  • 匹配分隔符分隔的值并省略带有标题的第一行

    我不太熟悉正则表达式 我从 dsv 文件中匹配由半列分隔的所有值 如下所示 d 但是 我想跳过包含标题名称的第一行 我想出了与第一行相匹配的类似内容 或者我相信它确实如此 A z 我想以某种方式组合这两个正则表达式 并确保分隔符分隔值匹配不
  • 为什么 JavaScript 压缩器用双引号替换单引号?

    制作一些 Bookmarklet 我尝试使用 JavaScript minifier 例如谷歌闭包编译器 http closure compiler appspot com home or YUI压缩器 http www refresh s
  • 使用 dropboxjs 通过 oauth 对客户端进行身份验证 2. 服务器端呢?

    我对 Oauth 和服务器端的东西还很陌生 所以请耐心等待 我有一个网络应用程序可以通过以下方式对用户进行身份验证dropbox js https github com dropbox dropbox js 一切都非常简单 该应用程序使用
  • Gitpython 初始化并推送新的存储库

    所以我尝试使用 gitpython https gitpython readthedocs io en stable intro html https gitpython readthedocs io en stable intro htm
  • 如何让html忽略文本中的代码?

    我需要在我的 html 文档中包含一些代码 我试过了 pre 标签 但这没有帮助 如何将此代码放入文本文档中 Thanks 简短的回答 使用在线编码您的代码HTML编码器 http www opinionatedgeek com dotne
  • 从 Pandas Timedelta 获取总小时数?

    如何获取 Pandas timedelta 中的总小时数 例如 gt gt gt td pd Timedelta 1 days 2 hours gt gt gt td get total hours 26 注意 根据文档 hours属性将返
  • 使用 Spring Batch 的 Json 数组读取器文件

    我有一个文件作为输入 其中包含 json 数组 我想在不破坏 Spring Batch 原则的情况下阅读它 与 FlatFileReader 或 XmlReader 相同的方式 我没有找到任何方法来做到这一点 读者已经在 spring ba