一尘不染

Talend的JSON解析器

json

我需要一些帮助,以设计一种策略来解析Talend作业(Java作业,而不是Perl)中的JSON文档。我正在使用Talend版本:5.0.2,并在Mac上进行开发,并计划在Linux机器上运行。

不幸的是,由于文件格式的原因,我无法使用tFileInputJSON组件-
每个文件包含数百个JSON文档,而完整的JSON文档占据了文件中的一行。我认为正确的解决方案是逐行读取文件,然后将其传递到JSON解析器中,然后从那里将结果发送到其余工作。

在我看来,我的选择是:

a)将行输入发送到某种Java JSON解析器。如果这是我需要采取的策略,那么我想就如何处理输出和获得建议提供一些建议。

b)找到一个解析JSON文档的Talend组件,但该组件位于一个流中,而不是单个文件中的有效JSON格式。

我已经搜索了该组件,但似乎找不到它。从我的搜索看来,即使tFileInputJSON组件也是相对较新的。

我绝对知道这是Java可以轻松完成的事情。 我的问题是要在Talend框架中同步整个过程。

有人对我下一步应该去哪里有什么建议?

提前致谢。


阅读 620

收藏
2020-07-27

共1个答案

一尘不染

您是否尝试过创建自定义例程?您可以在“代码”下(在左侧的存储库窗口中)执行此操作,右键单击“例程”并创建您的自定义例程。这样,您就可以编写Java函数,然后可以在作业中的某个位置(tMap,tJava等)调用它。您可以读取输入文件并在每个行/元素上调用一个函数,或者执行任何您想执行的操作。

像任何Java函数一样,该例程然后可以写入文件,在屏幕上打印或返回一些列表对象,您可以在其他tJava,tJavaFlex,tJavaRow或您工作中的任何Talend组件中进一步处理这些对象。

可能会觉得有些棘手,但仅使用自定义例程就可以做很多事情。

如果您想一路创建自己的组件,那么这可能是一个不错的开始:http
:
//www.talendforge.org/forum/viewtopic.php?id=
17650当然,创建组件还有很多费时,但如果您认为您将在多个项目/案例中重用此代码,则可能会很有用。

2020-07-27