如何在多行中转换Json数组(嵌套)

时间:2017-11-15 15:21:30

标签: talend

我有一个类似于此屏幕截图的Json数组:

JsonOutput

现在我想将此数组转换为如下表格格式:

tableOutput

目前我正在使用tExtractJSONFields。但我只找到了一种同时定位其中一个嵌套数组的方法。

我的表情:

"['book'][0].['category']"
    "['book'][0].['author']" 
        ......

所以我获得了第一行的输出。但是我不想对50,100等行做同样的事情。

有人知道解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:2)

在tExtractJsonFields中,选择edit Schema并在输出模式中提供所有可能的列。选择“Read by”作为“Xpath”。

现在在“循环Xpath查询”中写“/ book”

在“映射”部分中,您将在Schema中看到“Column”下的所有输出列。在Xpath Query下,将相应的列放在:

如果列是作者而不是Xpath查询将是“作者”

列是价格比X路径查询将是“价格”等等。

希望这有帮助..

答案 1 :(得分:1)

要完成PrettyK's个答案,您还可以将tExtractJsonFields与下拉列表中的JsonPath选项一起使用。

在输入行中,您将拥有类似于Object或String类型的“book”。 然后,在组件中,您定义所有字段(类别,作者,..),在组件中,您只需定义:

  1. 您将循环的json字段(此处:book)
  2. 要链接您的字段,您只需编写“@ .author”即可。
  3. 有关JsonPath的更多信息,有这个好site