returns : Array array containing objects found in JSON file.
const objectsList = await getJsonArray({
inputDir: "./data_input_files",
inputKeys: ["city", "region"],
inputFileNameList: [
"general_rates.csv",
"premium_rates.csv",
"danger_zones.csv",
],
outputDir: "./data_output_json",
outputFileName: "delivery_rates",
columnDelimiter: ",",
});
Example
Given three CSV files as input
File 1
city | region | deliverySchedule | rate | deliveryInstruction |
---|
AHUACHAPAN | AHUACHAPAN | LUNES-MIERCOLES-VIERNES | 3 | Contacto por telefono |
APOPA | SAN SALVADOR | DE LUNES A SABADO | 3 | |
AYUTUXTEPEQUE | SAN SALVADOR | DE LUNES A SABADO | 3 | |
MEJICANOS | SAN SALVADOR | DE LUNES A SABADO | 3 | |
SAN SALVADOR | SAN SALVADOR | DE LUNES A SABADO | 3 | |
File 2
city | region | deliverySchedule | rate |
---|
Apopa | San Salvador | Lunes a Sabado | 4 |
Ayutuxtepeque | San Salvador | Lunes a Sabado | 4 |
San Salvador | San Salvador | Lunes a Sabado | 4 |
File 3
locality | city | region | risk | deliveryInstruction |
---|
Madre Selva | Apopa | San Salvador | Delincuencia | PUNTO DE ENCUENTRO |
Popotlan | Apopa | San Salvador | Delincuencia | PUNTO DE ENCUENTRO |
EL TIGRE | AHUACHAPAN | AHUACHAPAN | Delincuencia | PUNTO DE ENCUENTRO |
CTON EL ROSARIO | AHUACHAPAN | AHUACHAPAN | Delincuencia | PUNTO DE ENCUENTRO |
Expected MERGED data :
city | region | locality | risk | deliveryInstruction | deliverySchedule | rate |
---|
Apopa | San Salvador | Madre Selva | Delincuencia | PUNTO DE ENCUENTRO | DE LUNES A SABADO | 4 |
Apopa | San Salvador | Popotlan | Delincuencia | PUNTO DE ENCUENTRO | DE LUNES A SABADO | 4 |
AHUACHAPAN | AHUACHAPAN | EL TIGRE | Delincuencia | PUNTO DE ENCUENTRO | LUNES-MIERCOLES-VIERNES | 3 |
AHUACHAPAN | AHUACHAPAN | CTON EL ROSARIO | Delincuencia | PUNTO DE ENCUENTRO | LUNES-MIERCOLES-VIERNES | 3 |
Ayutuxtepeque | San Salvador | | | | Lunes a Sabado | 4 |
San Salvador | San Salvador | | | | Lunes a Sabado | 4 |
MEJICANOS | SAN SALVADOR | | | | DE LUNES A SABADO | 3 |
Output json
Execute :
mergeCsvFilesToJsonArray({
inputDir: "./data_input_files",
inputKeys: ["city", "region"],
inputFileNameList: [
"general_rates.csv",
"premium_rates.csv",
"danger_zones.csv",
],
outputDir: "./data_output_json",
outputFileName: "delivery_rates",
columnDelimiter: ",",
});
Result in file saved :
[
{
"city": "AHUACHAPAN",
"region": "AHUACHAPAN",
"deliverySchedule": "LUNES-MIERCOLES-VIERNES",
"rate": "3",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"locality": "EL TIGRE",
"risk": "DELINCUENCIA"
},
{
"city": "APOPA",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"locality": "MADRE SELVA",
"risk": "DELINCUENCIA"
},
{
"city": "AYUTUXTEPEQUE",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": ""
},
{
"city": "MEJICANOS",
"region": "SAN SALVADOR",
"deliverySchedule": "DE LUNES A SABADO",
"rate": "3",
"deliveryInstruction": ""
},
{
"city": "SAN SALVADOR",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": ""
},
{
"city": "APOPA",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"updated": true,
"locality": "POPOTLAN",
"risk": "DELINCUENCIA"
},
{
"city": "AHUACHAPAN",
"region": "AHUACHAPAN",
"deliverySchedule": "LUNES-MIERCOLES-VIERNES",
"rate": "3",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"updated": true,
"locality": "CTON EL ROSARIO",
"risk": "DELINCUENCIA"
}
]
Output json with group by
Execute :
mergeCsvFilesToJsonArray({
inputDir: "./data_input_files",
inputKeys: ["city", "region"],
inputFileNameList: [
"general_rates.csv",
"premium_rates.csv",
"danger_zones.csv",
],
outputDir: "./data_output_json",
outputFileName: "delivery_rates",
columnDelimiter: ",",
groupBy: { groupByKey: "region", groupedArrayProperty: "cities" },
});
Result in file saved :
[
{
"region": "AHUACHAPAN",
"cities": [
{
"city": "AHUACHAPAN",
"region": "AHUACHAPAN",
"deliverySchedule": "LUNES-MIERCOLES-VIERNES",
"rate": "3",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"locality": "EL TIGRE",
"risk": "DELINCUENCIA"
},
{
"city": "AHUACHAPAN",
"region": "AHUACHAPAN",
"deliverySchedule": "LUNES-MIERCOLES-VIERNES",
"rate": "3",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"updated": true,
"locality": "CTON EL ROSARIO",
"risk": "DELINCUENCIA"
}
]
},
{
"region": "SAN SALVADOR",
"cities": [
{
"city": "APOPA",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"locality": "MADRE SELVA",
"risk": "DELINCUENCIA"
},
{
"city": "AYUTUXTEPEQUE",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": ""
},
{
"city": "MEJICANOS",
"region": "SAN SALVADOR",
"deliverySchedule": "DE LUNES A SABADO",
"rate": "3",
"deliveryInstruction": ""
},
{
"city": "SAN SALVADOR",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": ""
},
{
"city": "APOPA",
"region": "SAN SALVADOR",
"deliverySchedule": "LUNES A SABADO",
"rate": "4",
"deliveryInstruction": "PUNTO DE ENCUENTRO",
"updated": true,
"locality": "POPOTLAN",
"risk": "DELINCUENCIA"
}
]
}
]