使用 Talend 将数据添加到 json 文件

Add data to a json file using Talend

我有以下 JSON:

[
    {
        "date": "29/11/2021",
        "Name": "jack",

    },
    {
        "date": "30/11/2021",
        "Name": "Adam",

    },
        "date": "27/11/2021",
        "Name": "james",

    }
]

使用 Talend,我想添加 2 行来实现类似的内容:

[
    {
        "company": "AMA",
        "service": "BI",
        "date": "29/11/2021",
        "Name": "jack",
        

    },
    {
        "company": "AMA",
        "service": "BI",    
        "date": "30/11/2021",
        "Name": "Adam",

    },
        "company": "AMA",
        "service": "BI",    
        "date": "27/11/2021",
        "Name": "james",

    }
]

目前,我使用 3 个组件(tJSONDocOpen、tFixedFlowInput、tJSONDocOutput),但我无法正确配置组件来完成工作!

根据 Talend 的惯例,您需要做的是阅读您的 JSON。然后提取它的每个对象,添加您的属性,最后在文件中重建您的 JSON。

一种有效的方法是使用 tMap 组件 like this。

第一个 tFileInputJSON 必须指定它必须从 JSON by setting your 2 objects in the mapping field.

中读取哪些属性

然后 tMap 将简单地向您的主流添加 2 列,here is an example with hard coded string values。根据您的需要,此组件还将为您提供将动态数据分配给 2 个新列的可能性,它是操纵数据流结构的强大工具。

您将在官方文档中找到有关此组件的更多信息:https://help.talend.com/r/en-US/7.3/tmap/tmap; 尤其是“tMap 场景”部分。

备注

如果您对 Java 感到满意,可以不使用 tMap,而是使用 tjavaRow。使用它,只要您定义了组件的输出架构,您就可以使用任何 java 代码设置您的 2 个新列。

output_row.Name = input_row.Name;
output_row.date = input_row.date;
output_row.company = "AMA";
output_row.service = "BI";

如果您对 json 不满意。

只需执行以下步骤:

  1. 在元数据中,只需像这样创建一个 FileJson,然后将其作为 tFileInputJson 粘贴到您的作业中

  1. 你的工作设计和映射将是

  1. 在您的 tFileOutputJson 中,不要忘记更改数据块的 名称“数据”为“”