Voorbeeld 1: JSON naar CSV converteren
Invoer (twee objecten met verschillende sleutels):
[
{"id": 1, "name": "Anna Müller", "address": {"city": "Köln", "zip": "50667"}, "tags": ["admin", "dev"], "price": 19.9},
{"id": 2, "name": "Ben \"Bo\" Schulz, Jr.", "address": {"city": "Bonn"}, "tags": [], "active": true}
]
Uitvoer (standaard: komma, arrays als JSON-tekst):
id,name,address.city,address.zip,tags,price,active
1,Anna Müller,Köln,50667,"[""admin"",""dev""]",19.9,
2,"Ben ""Bo"" Schulz, Jr.",Bonn,,[],,true
Het resultaat van het eerste voorbeeld als tabel| id | name | address.city | address.zip | tags | price | active |
|---|
| 1 | Anna Müller | Köln | 50667 | ["admin","dev"] | 19.9 | |
| 2 | Ben "Bo" Schulz, Jr. | Bonn | | [] | | true |
Resultaat in woorden: Twee objecten worden 2 gegevensrijen en 7 kolommen. De kolommen bevatten samen alle sleutels. Het geneste object wordt ‘address.city’ en ‘address.zip’; ontbrekende waarden blijven leeg. De naam met komma en aanhalingstekens staat tussen aanhalingstekens, en het aanhalingsteken erin wordt verdubbeld (RFC 4180). De array ‘tags’ staat als JSON-tekst in een cel. De postcode blijft ‘50667’ en het getal 19.9 blijft 19.9.
Voorbeeld 2: CSV uit Excel omzetten naar JSON
Invoer (puntkomma als scheidingsteken, getallen met komma, één veld met aanhalingstekens en een regeleinde):
id;name;price;active;note
1;Anna Müller;19,90;true;
2;"Ben ""Bo"" Schulz";5;false;"Zeile 1
Zeile 2"
Uitvoer (scheidingsteken automatisch herkend, komma als decimaalteken):
[
{
"id": 1,
"name": "Anna Müller",
"price": 19.90,
"active": true,
"note": ""
},
{
"id": 2,
"name": "Ben \"Bo\" Schulz",
"price": 5,
"active": false,
"note": "Zeile 1\nZeile 2"
}
]
Resultaat in woorden: De tool herkent de puntkomma als scheidingsteken en maakt van elke regel een object met de namen uit de kopregel. ‘19,90’ wordt het getal 19.90, ‘5’ wordt het getal 5 en ‘true’ wordt een JSON-boolean. Het veld met de regelafbreking blijft één tekst met \n, en dubbele aanhalingstekens worden één aanhalingsteken. De lege laatste cel van de eerste regel wordt een lege tekst.
Voorbeeld 3: geneste gegevens en arrays
Invoer:
[{"id": 1, "user": {"name": "Anna", "address": {"city": "Köln"}}, "tags": ["admin", "dev"]}, {"id": 2, "user": {"name": "Ben"}, "tags": ["dev"]}]
Arrays als JSON-tekst:
id,user.name,user.address.city,tags
1,Anna,Köln,"[""admin"",""dev""]"
2,Ben,,"[""dev""]"
Arrays uitgeschreven:
id,user.name,user.address.city,tags.0,tags.1
1,Anna,Köln,admin,dev
2,Ben,,dev,
Resultaat in woorden: Geneste objecten worden met puntnotatie afgevlakt: „user“ en „address“ worden „user.address.city“. Bij arrays heb je de keuze: als JSON-tekst blijft het aantal kolommen gelijk en gaat er niets verloren. Bij uitschrijven krijgt elk element een eigen kolom („tags.0“, „tags.1“); in de rij met slechts één tag blijft de tweede leeg.