Przykład 1: konwersja JSON na CSV
Dane wejściowe (dwa obiekty z różnymi kluczami):
[
{"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}
]
Wynik (domyślnie: przecinek, tablice jako tekst 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
Wynik pierwszego przykładu w formie tabeli| 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 |
Wynik słownie: z dwóch obiektów powstaje 2 wierszy danych i 7 kolumn. Kolumny obejmują wszystkie klucze, zagnieżdżony obiekt zmienia się w „address.city” i „address.zip”, a wartości nieobecne w obiekcie pozostają puste. Nazwa zawierająca przecinek i cudzysłów zostaje ujęta w cudzysłów, a zawarty w niej cudzysłów jest podwojony (RFC 4180). Tablica „tags” trafia do komórki jako tekst JSON. Kod pocztowy pozostaje „50667”, a liczba 19.9 pozostaje 19.9.
Przykład 2: konwersja CSV z Excela na JSON
Dane wejściowe (separator: średnik, liczby z przecinkiem, pole w cudzysłowie zawierające znak nowego wiersza):
id;name;price;active;note
1;Anna Müller;19,90;true;
2;"Ben ""Bo"" Schulz";5;false;"Zeile 1
Zeile 2"
Wynik (automatyczne wykrywanie separatora, przecinek dziesiętny):
[
{
"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"
}
]
Wynik słownie: narzędzie rozpoznaje średnik jako separator i zamienia każdy wiersz w obiekt z nazwami z wiersza nagłówkowego. „19,90” staje się liczbą 19.90, „5” liczbą 5, a „true” wartością logiczną JSON. Pole zawierające znak nowego wiersza pozostaje jednym tekstem z \n, a podwojone cudzysłowy zmieniają się w pojedyncze. Pusta ostatnia komórka pierwszego wiersza staje się pustym tekstem.
Przykład 3: zagnieżdżone dane i tablice
Dane wejściowe:
[{"id": 1, "user": {"name": "Anna", "address": {"city": "Köln"}}, "tags": ["admin", "dev"]}, {"id": 2, "user": {"name": "Ben"}, "tags": ["dev"]}]
Tablice jako tekst JSON:
id,user.name,user.address.city,tags
1,Anna,Köln,"[""admin"",""dev""]"
2,Ben,,"[""dev""]"
Rozwinięte tablice:
id,user.name,user.address.city,tags.0,tags.1
1,Anna,Köln,admin,dev
2,Ben,,dev,
Wynik w słowach: Obiekty zagnieżdżone są spłaszczane za pomocą notacji kropkowej: z „user” i „address” powstaje „user.address.city”. W przypadku tablic masz wybór: jako tekst JSON zachowują one tę samą liczbę kolumn i żadne dane nie giną. Po rozwinięciu każdy element otrzymuje osobną kolumnę („tags.0”, „tags.1”), a w wierszu z tylko jednym tagiem druga kolumna pozostaje pusta.