Converts JSON to CSV
The field's biggest value size determines the number of csv lines.
- Writes values in each row as long as the biggest size is not reached.
- The index of the array will be incremented after each row. That means after an array size is reached there won't be further values in this column.
- The json is not allowed to have an array inside an array.
- Each object in an array has to contain the same fields.
This json..
{
"field1": "value1",
"field2": [1, 2, 3, 4, 5, 6, 7, 8, 9],
"field3": {
"field3-a": 4.0
},
"field4": { },
"field5": [{
"field5-a": 5,
"field5-b": 5.1
}, {
"field5-a": 6,
"field5-b": 6.1
}, {
"field5-a": 7,
"field5-b": 7.1
}, {
"field5-a": 8,
"field5-b": 8.1
}, {
"field5-a": 9,
"field5-b": 9.1
}],
"field6": [ ]
}
will be this csv..
field1;field2;field3.field3-a;field4;field5.field5-a;field5.field5-b;field6
value1;1;4.0;;5;5.1;
value1;2;4.0;;6;6.1;
value1;3;4.0;;7;7.1;
value1;4;4.0;;8;8.1;
value1;5;4.0;;9;9.1;
value1;6;4.0;;;;
value1;7;4.0;;;;
value1;8;4.0;;;;
value1;9;4.0;;;;
displayed as a table..
field1 | field2 | field3.field3-a | field4 | field5.field5-a | field5.field5-b | field6 |
---|---|---|---|---|---|---|
value1 | 1 | 4.0 | 5 | 5.1 | ||
value1 | 2 | 4.0 | 6 | 6.1 | ||
value1 | 3 | 4.0 | 7 | 7.1 | ||
value1 | 4 | 4.0 | 8 | 8.1 | ||
value1 | 5 | 4.0 | 9 | 9.1 | ||
value1 | 6 | 4.0 | ||||
value1 | 7 | 4.0 | ||||
value1 | 8 | 4.0 | ||||
value1 | 9 | 4.0 |
This library uses com.fasterxml.jackson.core's jackson-databind to deserialize json to a map.