Create a JsonPipelineInput Programmatically
Updated: Feb 21, 2022
- package com.northconcepts.datapipeline.foundations.examples.pipeline;
- import com.northconcepts.datapipeline.foundations.file.FileSource;
- import com.northconcepts.datapipeline.foundations.file.LocalFileSink;
- import com.northconcepts.datapipeline.foundations.file.LocalFileSource;
- import com.northconcepts.datapipeline.foundations.pipeline.Pipeline;
- import com.northconcepts.datapipeline.foundations.pipeline.input.JsonPipelineInput;
- import com.northconcepts.datapipeline.foundations.pipeline.output.ExcelPipelineOutput;
- import com.northconcepts.datapipeline.xml.XmlReader;
- public class CreateAJsonPipelineInput {
- public static void main(String... args) {
- Pipeline pipeline = new Pipeline();
- FileSource source = new LocalFileSource()
- .setName("input-json")
- .setPath("example/data/input/pipeline/json-input.json")
- .detectFileType();
- JsonPipelineInput input = new JsonPipelineInput()
- .setFileSource(source)
- .addRecordBreak("//array/object")
- .addField("UID", "/object/UID", true)
- .addField("type", "//favorites/*/node()")
- .addField("favorite-name", "//favorites//name")
- .addField("favorite-id", "//favorites//id", "//favorites/books")
- .addField("favorite-category", "//favorites//category")
- .setDuplicateFieldPolicy(XmlReader.DuplicateFieldPolicy.USE_LAST_VALUE);
- pipeline.setInput(input);
- LocalFileSink sink = new LocalFileSink().setPath("data/output/test.xlsx");
- pipeline.setOutput(new ExcelPipelineOutput().setFileSink(sink).setFieldNamesInFirstRow(true));
- pipeline.run();
- }
- }