JSON verini yapıştır, iç içe alanları sütunlara açalım, .xlsx ya da .csv olarak indir. Türkçe Excel için noktalı virgül ve UTF-8 BOM seçenekleriyle. Dosyan tarayıcından çıkmaz.
Dosyayı buraya sürükle ya da
Ayraç virgülken ondalık virgül kullanılamaz.
İstemediğin sütunun işaretini kaldır, okları kullanarak sırasını değiştir.
Veriyi kutuya yapıştır ya da .json dosyasını üzerine sürükle. Nesne dizisi, tek nesne, sarmalayıcı içinde gelen dizi ve satır başına bir nesne olan JSON Lines biçimi tanınır.
Nesneler nokta notasyonuyla sütuna dönüşür. Diziler için virgülle birleştirme, satıra açma, her öğeye ayrı sütun ve JSON metni olarak bırakma seçeneklerinden birini işaretle.
İstemediğin sütunun işaretini kaldır, okları kullanarak sırasını değiştir. Önizleme sayı, tarih ve mantıksal değerleri ayrı renklerle gösterir, böylece türleri indirmeden görürsün.
Excel dosyası türleri ve formül korumasını taşır. CSV seçersen Türkçe Excel için ayracı noktalı virgül bırak ve UTF-8 BOM seçeneğini açık tut. Dosya tarayıcında üretilir.
JSON bir ağaçtır: bir alanın içinde başka bir nesne, onun içinde bir dizi olabilir. Excel ise düz bir dikdörtgendir. Dönüştürme dediğimiz şey, aslında bu ikisinin uyuşmadığı yerlerde ne yapılacağına karar vermektir.
İç içe nesneler nokta notasyonuyla açılır: adres alanının içindeki sehir, adres.sehir adlı bir sütun olur. Kaç kat derine inerse insin aynı kural işler, alanın tam yolu sütun adı hâline gelir. Bazı sistemler nokta yerine alt çizgi ister; onu da seçebilirsin.
| JSON yapısı | Tabloda karşılığı |
|---|---|
{"adres": {"sehir": "İzmir"}} | adres.sehir adlı tek sütun |
{"etiket": ["a", "b"]} | Seçime göre: “a, b” tek hücre, ya da etiket.1 ve etiket.2 sütunları |
{"kalem": [{"ad": "x"}, {"ad": "y"}]} | Satıra açma seçiliyse iki satır; diğer alanlar ikisinde de tekrar eder |
{"status": "ok", "data": [...]} | Tablo data dizisinden alınır, sarmalayıcı alanlar atlanır |
[{"a": 1}, {"b": 2}] | a ve b sütunları; olmayan alanlar boş hücre kalır |
Sütun sırası, alanların dosyada ilk göründüğü sıradır. Kayıtların hepsinde aynı alanlar yoksa sütunlar birleşimden çıkar: bir kayıtta olup diğerinde olmayan alan sütun olarak durur, o satırda hücresi boş kalır. Boş hücre gerçekten boştur; sıfır ya da “null” yazısı değil.
CSV dosyalarının Türkiye’de iki klasik derdi var ve ikisi de dosyanın değil, Excel’in okuma biçiminden kaynaklanıyor.
Birincisi ayraç. Excel, alanların hangi işaretle ayrıldığını dosyaya bakarak değil, Windows’un bölge ayarındaki liste ayracına bakarak belirler. Türkçe kurulumda bu ayraç noktalı virgüldür, çünkü ondalık ayracı virgüldür ve ikisi aynı olamaz. Virgülle ayrılmış klasik bir CSV’yi Türkçe Excel’de çift tıklayarak açtığında bütün satır tek hücreye yığılır. Bu araçta varsayılan ayraç bu yüzden noktalı virgüldür.
İkincisi kodlama. UTF-8 kodlanmış bir dosyayı Excel, aksi söylenmediği sürece Windows-1254 sanır; çok baytlı Türkçe harfler ikiye bölünür ve “Çağrı” yerine “çaÄŸrı” görürsün. Çözüm, dosyanın başına UTF-8 BOM denen görünmez üç baytlık işareti koymaktır: Excel onu görünce dosyayı doğru okur. Buradaki BOM seçeneği açık gelir.
Bu iki dert yalnızca CSV’ye özgüdür. .xlsx dosyası kodlamayı ve alan sınırlarını kendi içinde taşır, dolayısıyla ne ayraç ne de BOM sorunu yaşar. Veriyi başka bir programa aktarmak zorunda değilsen .xlsx seçmek her zaman daha güvenlidir.
| Belirti | Sebebi | Çözümü |
|---|---|---|
| Bütün veri tek sütunda | Dosyadaki ayraç ile Excel’in beklediği ayraç farklı | Ayracı noktalı virgül seç |
| ğ, ş, ı, ç harfleri bozuk görünüyor | Excel dosyayı UTF-8 değil Windows-1254 sanıyor | UTF-8 BOM seçeneğini açık bırak |
| Ondalıklı sayılar metin gibi duruyor | Excel virgüllü ondalık bekliyor, dosyada nokta var | Ondalık ayracı virgül seçeneğini işaretle ya da .xlsx indir |
| Uzun kimlik numaraları 1,23457E+19 oldu | Excel 15 basamaktan uzun sayıyı bilimsel gösterime çeviriyor | Bu araç çok büyük sayıları zaten metin olarak yazar |
Excel, bir hücrenin içeriği eşittir işaretiyle başlıyorsa onu veri değil formül sayar. Aynısı artı, eksi ve “kuyruklu a” işaretleri için de geçerlidir. Bu, elle yazarken istediğimiz davranıştır; dışarıdan gelen bir dosyada ise saldırı yüzeyidir.
Senaryo şudur: bir kullanıcı, adını yazması gereken alana bir formül yazar. O kayıt veritabanına düşer, aylar sonra biri raporu dışa aktarır ve dosyayı açar. Formül, dosyayı açan kişinin bilgisayarında, onun yetkileriyle çalışır. Elektronik tablo formülleri başka hücreleri okuyabilir, dış adreslere veri sızdırabilir; bazı yapılandırmalarda program çalıştırmaya kadar gider. Bu zafiyetin adı CSV enjeksiyonudur ve açığı dosyayı üreten tarafta kapatmak gerekir, çünkü zararı gören taraf dosyayı açan kişidir.
Bu araç varsayılan olarak korumalı çalışır ve iki biçimde iki farklı yol izler. Excel dosyasında hücre zaten metin türünde yazılır, üstüne de Excel’in kendi “bu bir metindir” bayrağı konur; değer olduğu gibi durur, hiçbir karakteri değişmez, ama asla hesaplanmaz. CSV’de ise böyle bir bayrak yoktur, çünkü CSV’de tür diye bir şey yoktur; oraya değerin başına tek tırnak eklenir. Tek tırnak Excel’de görünmez, düz metin düzenleyicide görünür. Koruma anahtarını kapatabilirsin, ama dosyayı senden başkası açacaksa kapatmamak gerekir.
| JSON içindeki değer | Korumasız açılırsa | Bu araçta |
|---|---|---|
=1+1 | Hücrede 2 görünür, asıl değer kaybolur | =1+1 metni olduğu gibi görünür |
@SUM(A1:A9) | Formüle dönüşür ve hesaplanır | Metin kalır |
-5 | Sayıya çevrilir, başındaki bilgi kaybolabilir | JSON’da metinse metin, sayıysa sayı kalır |
=HYPERLINK("http://...") | Tıklanabilir bağlantıya döner | Zararsız metin olarak kalır |
Bir tablo programının en zararlı huyu, verinin ne olduğunu kendi kendine tahmin etmesidir. Metin sütununa yazılmış bir kod tarihe, uzun bir kimlik numarası bilimsel gösterime çevrilir ve geri dönüşü olmaz. Bilim dünyasında bu o kadar büyük bir sorun oldu ki, genetikçiler tabloların bozduğu gen adlarını değiştirmek zorunda kaldı.
Bu araç tahmin etmemeye çalışır. JSON’da sayı olan sayı, doğru ya da yanlış olan mantıksal değer, boş olan boş hücre olarak yazılır; tür bilgisi zaten kaynakta vardır, uydurmaya gerek yoktur.
Tarih konusunda ölçü şudur: yalnızca tam ISO 8601 biçimi tarih sayılır, yani 2026-09-03 ya da 2026-09-03T14:30:00 gibi yazılmış olanlar. “3-4” ya da “01/02/03” gibi tarihe benzeyen ama tarih olmayabilecek metinler metin olarak bırakılır. Bu davranışı tamamen kapatabilirsin; kapatırsan bütün tarihler metin olarak yazılır.
Büyük sayılarda ise şu olur: JavaScript, yaklaşık 16 basamaktan uzun tam sayıları tam olarak tutamaz. Sipariş numarası, Twitter kimliği ya da 20 haneli bir referans numarası bu sınırın üstündeyse yuvarlanır. Bu araç böyle bir sayıyı dosyada yazdığı hâliyle, basamak basamak metin olarak yazar ve bunu sana söyler. Yuvarlanmış bir sayı vermektense metin vermek daha dürüsttür.
Kaç kat derine inerse insin bütün alanları nokta notasyonuyla sütuna çevirir. Diziler için dört ayrı davranıştan birini seçersin.
Eşittir, artı, eksi ya da kuyruklu a ile başlayan değerler, içeriği hiç değişmeden, çalışmayacak biçimde yazılır.
Noktalı virgül ayracı ve UTF-8 BOM varsayılan olarak açık gelir; dosyayı çift tıklayıp açtığında düzgün görünür.
Sayı sayı, mantıksal değer mantıksal değer, ISO tarih gerçek tarih hücresi olur. Metin olması gereken hiçbir şey tarihe çevrilmez.
Hangi sütunların dosyaya gireceğini işaretler, sıralarını oklarla değiştirirsin. Önizlemede sonucu anında görürsün.
Okuma, dönüştürme ve dosya yazma tarayıcının içinde olur. Müşteri listesi ya da personel verisi hiçbir yere yüklenmez.
Hayır. Okuma, dönüştürme ve dosya yazma işlerinin hepsi tarayıcının içinde yapılır. Yapıştırdığın ya da sürüklediğin veri hiçbir yere gönderilmez, hiçbir yerde saklanmaz. Müşteri listesi, personel bilgisi ya da API çıktısı gibi paylaşılmaması gereken verilerle de rahatça kullanabilirsin.
İç içe alanlar nokta notasyonuyla düzleştirilir. Örneğin {"adres": {"sehir": "İzmir"}} verisi adres.sehir adlı bir sütun olur. Kaç kat derine inerse insin aynı kural işler ve alanın tam yolu sütun adı hâline gelir. Nokta yerine alt çizgi ya da eğik çizgi de seçebilirsin; bazı sistemler nokta içeren sütun adlarını kabul etmez.
Dört davranıştan birini seçersin. Virgülle birleştir, dizideki değerleri tek hücreye yazar. Nesne dizilerini satıra aç, dizideki her öğe için ayrı bir satır üretir ve kaydın diğer alanlarını her satırda tekrarlar; sipariş kalemleri gibi veriler için doğru olan budur. Her öğeye ayrı sütun, etiket.1, etiket.2 gibi numaralı sütunlar oluşturur. JSON metni olarak bırak ise diziyi olduğu gibi hücreye yazar.
Bu sorun CSV'ye özgüdür. Excel, aksi belirtilmedikçe dosyayı UTF-8 değil Windows-1254 sanar; çok baytlı Türkçe harfler ikiye bölünür ve “Çağrı” yerine bozuk karakterler görürsün. Çözüm, dosyanın başına UTF-8 BOM denen görünmez üç baytlık işareti koymaktır. Bu araçta BOM seçeneği varsayılan olarak açıktır. İkinci bir yol da .xlsx indirmektir: Excel dosyası kodlamayı kendi içinde taşıdığı için bu sorunu hiç yaşamaz.
Ayraç uyuşmazlığı. Excel, alanların hangi işaretle ayrıldığını dosyaya bakarak değil, Windows'un bölge ayarındaki liste ayracına bakarak belirler. Türkçe kurulumda bu ayraç noktalı virgüldür, çünkü ondalık ayracı virgüldür ve ikisi aynı olamaz. Virgülle ayrılmış bir CSV'yi Türkçe Excel'de çift tıklayarak açarsan bütün satır tek hücreye düşer. Bu araçta varsayılan ayraç noktalı virgüldür; veriyi Excel dışında bir yere aktaracaksan virgülü seçebilirsin.
Excel, içeriği eşittir, artı, eksi ya da kuyruklu a işaretiyle başlayan bir hücreyi veri değil formül sayar. Dışarıdan gelen veride bu bir güvenlik açığıdır: bir kullanıcı ad alanına formül yazarsa, o formül raporu açan kişinin bilgisayarında onun yetkileriyle çalışır. Buna CSV enjeksiyonu denir. Bu araç varsayılan olarak korur. Excel dosyasında hücre metin türünde yazılır ve üstüne Excel'in kendi “bu bir metindir” bayrağı konur; değer hiç değişmeden görünür ama asla hesaplanmaz. CSV'de tür kavramı olmadığı için değerin başına tek tırnak eklenir.
JavaScript, yaklaşık 16 basamaktan uzun tam sayıları tam olarak saklayamaz; 20 haneli bir sipariş numarası ya da platform kimliği sayı olarak okunursa son basamakları değişir. Bu araç böyle bir sayıyı dosyada yazdığı hâliyle, basamak basamak metin olarak yazar ve önizlemede bunu sana bildirir. Yuvarlanmış bir sayı vermektense bozulmamış bir metin vermek daha doğrudur. Ayrıca Excel de 15 basamaktan uzun sayıları bilimsel gösterime çevirdiği için, metin olarak yazmak numaranın okunabilir kalmasını sağlar.
Yalnızca tam ISO 8601 biçimindekiler. 2026-09-03 ya da 2026-09-03T14:30:00 gibi yazılmış değerler gerçek tarih hücresi olur ve Excel'de tarih olarak sıralanıp biçimlendirilebilir. 3-4 ya da 01/02/03 gibi tarihe benzeyen ama başka bir şey olabilecek metinler metin olarak bırakılır. Bu kasıtlı bir tercihtir: tablo programlarının veriyi tahmin ederek tarihe çevirmesi, ürün kodlarını ve gen adlarını kalıcı olarak bozmasıyla ünlüdür. İstersen tarih algılamayı tamamen kapatabilirsin.
Evet. Kökte tek bir nesne varsa tek satırlık bir tablo üretilir. {"status": "ok", "data": [...]} gibi sarmalayıcı bir yapı varsa araç içerideki en uzun nesne dizisini bulur ve tabloyu ondan kurar; hangi alandan aldığını da önizlemede söyler. Her satırı ayrı bir JSON nesnesi olan JSON Lines biçimi de tanınır ve satır satır okunur; log çıktıları ve veritabanı aktarımları çoğunlukla bu biçimdedir.
Pratik sınır tarayıcının belleğidir. On bin satırlık bir veri saniyeler içinde hazırlanır ve yaklaşık 240 KB'lık bir .xlsx dosyası çıkar. Yüz bin satır da çalışır, ama dosyanın hazırlanması birkaç saniye sürer ve tablo yirmi bin satırı geçtiğinde araç seni uyarır. Excel'in kendi sınırları da geçerlidir: bir sayfada en fazla 1.048.576 satır ve 16.384 sütun olabilir, bir hücreye en fazla 32.767 karakter sığar. Bu sınırlar aşılırsa araç kesme yapar ve kaç satır ya da hücrenin etkilendiğini indirme sonrası bildirir.
Evet. Dönüştürme yapıldıktan sonra bütün sütunlar bir liste hâlinde görünür. İstemediklerinin işaretini kaldırırsın, okları kullanarak sıralarını değiştirirsin ve önizleme ile satır sayısı anında güncellenir. Seçimin, JSON'u değiştirdiğinde de korunur: kapattığın bir sütun, yeni veride de varsa kapalı kalır.
Sütunlar bütün kayıtların birleşiminden çıkar. Bir alan kayıtların yalnızca birinde geçiyorsa yine de sütun olur; o alanı taşımayan satırlarda hücre boş kalır. Boş hücre gerçekten boştur, sıfır ya da “null” yazısı değil, dolayısıyla Excel'de sıralama ve filtreleme doğru çalışır. Sütun sırası, alanların dosyada ilk göründüğü sıradır.