Convert JSON to CSV
Updated: Aug 28, 2026
package com.northconcepts.datapipeline.examples.cookbook;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import com.northconcepts.datapipeline.core.DataReader;
import com.northconcepts.datapipeline.core.DataWriter;
import com.northconcepts.datapipeline.csv.CSVWriter;
import com.northconcepts.datapipeline.job.Job;
import com.northconcepts.datapipeline.json.JsonReader;
import com.northconcepts.datapipeline.json.SimpleJsonReader;
public class ConvertJsonToCsv {
/* Consumes the following JSON (line breaks added for clarity). Yes, it starts with a new line an two slashes.
// [
{
"id":"358464",
"t":"MSFT",
"e":"NASDAQ",
"l":"31.67",
"l_cur":"31.67",
"s":"2",
"ltt":"4:00PM EDT",
"lt":"Aug 1, 4:00PM EDT",
"c":"-0.17",
"cp":"-0.53",
"ccol":"chr",
"el":"31.69",
"el_cur":"31.69",
"elt":"Aug 1, 7:54PM EDT",
"ec":"+0.02",
"ecp":"0.06",
"eccol":"chg",
"div":"0.23",
"yld":"2.90"
},
{
"id":"419344",
"t":"ORCL",
"e":"NYSE",
"l":"32.75",
"l_cur":"32.75",
"s":"2",
"ltt":"4:00PM EDT",
"lt":"Aug 1, 4:00PM EDT",
"c":"+0.40",
"cp":"1.24",
"ccol":"chg",
"el":"32.70",
"el_cur":"32.70",
"elt":"Aug 1, 7:15PM EDT",
"ec":"-0.05",
"ecp":"-0.15",
"eccol":"chr",
"div":"",
"yld":"1.47"
},
{
"id":"4112",
"t":"ADBE",
"e":"NASDAQ",
"l":"47.70",
"l_cur":"47.70",
"s":"0",
"ltt":"4:00PM EDT",
"lt":"Aug 1, 4:00PM EDT",
"c":"+0.42",
"cp":"0.89",
"ccol":"chg"
}
]
*/
public static void main(String[] args) throws Throwable {
DataReader reader = new JsonReader(new File("example/data/input/finance.json"))
.addField("symbol", "//array/object/t")
.addField("exchange", "//array/object/e")
.addField("price", "//array/object/l")
.addField("change", "//array/object/c")
.addRecordBreak("//array/object");
DataWriter writer = new CSVWriter(new OutputStreamWriter(System.out));
Job.run(reader, writer);
}
}
