Esempio 1: convertire JSON in CSV
Input (due oggetti con chiavi diverse):
[
{"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}
]
Output (predefinito: virgola, array come testo JSON):
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
Il risultato del primo esempio in formato tabellare| 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 |
Risultato in parole: da due oggetti si ottengono 2 righe di dati e 7 colonne. Le colonne comprendono tutte le chiavi; l'oggetto annidato diventa «address.city» e «address.zip», mentre i valori assenti restano vuoti. Il nome contenente virgola e virgolette è racchiuso tra virgolette, e quelle al suo interno vengono raddoppiate (RFC 4180). L'array «tags» compare come testo JSON in una cella. Il codice postale resta «50667» e il numero 19.9 resta 19.9.
Esempio 2: convertire un CSV da Excel in JSON
Input (separatore punto e virgola, numeri con la virgola, un campo tra virgolette con un'interruzione di riga):
id;name;price;active;note
1;Anna Müller;19,90;true;
2;"Ben ""Bo"" Schulz";5;false;"Zeile 1
Zeile 2"
Output (separatore rilevato automaticamente, virgola decimale):
[
{
"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"
}
]
Risultato in parole: lo strumento riconosce il punto e virgola come separatore e trasforma ogni riga in un oggetto con i nomi della riga di intestazione. «19,90» diventa il numero 19.90, «5» diventa il numero 5 e «true» un booleano JSON. Il campo con l'interruzione di riga resta un unico testo con \n e le virgolette raddoppiate diventano singole. L'ultima cella vuota della prima riga diventa una stringa vuota.
Esempio 3: dati annidati e array
Input:
[{"id": 1, "user": {"name": "Anna", "address": {"city": "Köln"}}, "tags": ["admin", "dev"]}, {"id": 2, "user": {"name": "Ben"}, "tags": ["dev"]}]
Array come testo JSON:
id,user.name,user.address.city,tags
1,Anna,Köln,"[""admin"",""dev""]"
2,Ben,,"[""dev""]"
Array espansi:
id,user.name,user.address.city,tags.0,tags.1
1,Anna,Köln,admin,dev
2,Ben,,dev,
Risultato in parole: gli oggetti nidificati vengono appiattiti con la notazione a punti: «user» e «address» diventano «user.address.city». Per gli array puoi scegliere: come testo JSON, il numero di colonne resta invariato e non si perde nulla. Espandendo gli elementi, ognuno ottiene una colonna («tags.0», «tags.1»); nella riga con un solo tag, la seconda resta vuota.