Enhanced JSON Output
Options
General Tab
General tab allows to specify type of transform operation, output json structure, transform output file. This file will be used to dump all generated json.
Option | Description |
---|---|
Transform name | Name of the transform; this name has to be unique in a single pipeline. |
Operation | Specify transform operation type. Currently available 3 types of operation:
|
Json block name | This value will be used as a name for json block. Can be empty string that will affect output json structure, see detailed description below. |
Output value | This value will be used as a transform output field. Will contain generated json output block depending on transform settings. |
Force Arrays In JSON | If checked, JSON output will be forced as a single item whose content is an array. |
Pritty Print JSON | If checked, JSON output will be pritty printed. |
Output File
Option | Description |
---|---|
Filename | full path to output file |
Append | If not checked - new file will be created every time transform is running. If file with specified name exists already, it will be replaced by a new one. If checked - new json output will be appended to the end of existing file. Or if file does not exist, it will be created as in previous case. |
Split JSON after n rows | If this number N is larger than zero, split the resulting JSON file into multiple parts of N rows. |
Create Parent folder | Usually file name contains some path folder as a parent folder. If parent folder does not exist and this option is checked, parent folder will be created as a new folder. Otherwise - file not be found and transform will fail. |
Do not open create at start | If not checked - file (and in some cases parent folder) will be created/opened to write during pipeline initialization. If checked - file and parent folder will be created only after transform gets any first input data. |
Extension | Output file extension. Default value is 'js' |
Encoding | Output file encoding |
Include date in filename? | If checked - output file name will contain File name value + current date. This may help to generate unique output files. |
Include time in filename | If checked - output file name will contain file creation time. Same as for 'Include date in filename' option |
Show filename(s) button | Can be useful to test full output file path |
Add file to result filenames? | If checked - created output file path will be accessible form transform result |
Group Key Tab
This tab is used to map input transform fields key used to properly generate output json values
Option | Description |
---|---|
Fieldname | Input transform field name that will ccontribute to define the input transform fields key. Use 'Get Fields' button to discover available input fields |
Element name | Json element name. For example "A":"B" - A is a element name, B is actual input value mapped for this Element name. |
Fields Tab
This tab is used to map input transform fields to output json values
Option | Description |
---|---|
Fieldname | Input transform field name. Use 'Get Fields' button to discover available input fields |
Element name | Json element name as a key. For example "A":"B" - A is a element name, B is actual input value mapped for this Element name. |
JSON Fragment | If the value is set to Y the value contained in the filed is a JSON chunk and will be treated accordingly |
Remove Element name | If the value is set to Y it will ignore the Element name and insert the JSON Fragment without wrapping it. Only works with JSON Fragment = Y |
Remove if Blank | If the value is set to Y and value in incoming field is null, the related attribute will be omitted from JSON output |
A Quick Example
As an example suppose we have, as input, a flow with the following fields and values
Field1 | Field2 | Field3 |
A | B | 1 |
A | B | 2 |
B | C | 1 |
B | C | 2 |
B | D | 4 |
C | F | 5 |
C | F | 6 |
C | V | 6 |
C | B | 7 |
Tab General - Configuration
Option | Assigned Value |
Operation | Write To File |
JSON Block Name | result |
Output Value | lvl1Details |
Pritty Print JSON | Checked |
Filename | Set to a convenient filename for JSON output |
Tab Fields - Configuration
Field Name | Element Name | JSON Fragment | Remove If Blank |
field2 | campo2 | N | N |
field3 | campo3 | N | N |
Output file result
{
"result" : [ {
"recordKey" : "C",
"lvl1Details" : {
"result" : [ {
"campo2" : "F",
"campo3" : "5"
}, {
"campo2" : "F",
"campo3" : "6"
}, {
"campo2" : "V",
"campo3" : "6"
}, {
"campo2" : "B",
"campo3" : "7"
} ]
}
}, {
"recordKey" : "B",
"lvl1Details" : {
"result" : [ {
"campo2" : "C",
"campo3" : "1"
}, {
"campo2" : "C",
"campo3" : "2"
}, {
"campo2" : "D",
"campo3" : "4"
} ]
}
}, {
"recordKey" : "A",
"lvl1Details" : {
"result" : [ {
"campo2" : "B",
"campo3" : "1"
}, {
"campo2" : "B",
"campo3" : "2"
} ]
}
} ]
}