JSON'dan CSV'ye çevirme

Cihazınızda çalışır · Dosyanız cihazınızdan asla çıkmaz.

Bir .json dosyası bırakın ya da API yanıtını doğrudan yapıştırın; Excel, Google E-Tablolar ya da herhangi bir içe aktarma ekranında açılan bir CSV alın. En üst düzeydeki liste her öğe için bir satır verir; öyle değilse belgedeki en uzun kayıt listesi kullanılır, yani {"results": [...], "count": 2} her sonuç için bir satır verir; içinde liste olmayan bir nesne tek satır olur.

Kurallar sabittir, sonuç öngörülebilir: iç içe nesneler nokta ile ayrılmış sütunlara açılır (adres.il), düz değerlerden oluşan bir liste tek hücrede noktalı virgülle birleştirilir, bir kaydın içindeki nesne listesi numaralı sütunlar alır (kalemler.0.ad). Başlık satırı bulunan tüm anahtarların birleşimidir, ilk görüldükleri sırayla; eksik alanı olan kayıtlar o hücreyi boş bırakır.

CSV, RFC 4180'e göre yazılır: virgül, tırnak ya da satır sonu içeren alanlar doğru şekilde tırnaklanır. UTF-8'dir ve isteğe bağlı BOM ile Excel Türkçe karakterleri ve ₺ gibi simgeleri doğru gösterir. =, +, - ya da @ ile başlayan bir hücrenin önüne kesme işareti konur; böylece elektronik tablo onu formül olarak çalıştırmaz, metin olarak gösterir. Sütun ayırıcı olarak Türkçe Excel'in beklediği noktalı virgülü de seçebilirsiniz. İndirmeden önce ilk 200 satırı görürsünüz; hiçbir şey cihazınızdan çıkmaz.

JSON'dan CSV'ye çevirme nasıl yapılır

  1. Bir JSON dosyası bırakın ya da JSON metnini kutuya yapıştırın.
  2. Çıktı için sütun ayırıcıyı (varsayılan virgül; Türkçe Excel için noktalı virgül) ve Excel BOM’unu seçin.
  3. «CSV biçimine dönüştür» düğmesine basın ve ilk satırların önizlemesini kontrol edin.
  4. .csv dosyasını indirin.

Desteklenen biçimler ve sınırlar

Girdi
JSON (.json): dosya ya da yapıştırılmış metin, UTF-8
Çıktı
CSV, RFC 4180, UTF-8, CRLF satır sonu, isteğe bağlı BOM
İç içe yapı
Nesneler → nokta ile ayrılmış sütun; değer listeleri → ; ile birleştirilir
Ayırıcı
Virgül, noktalı virgül, sekme ya da dikey çizgi
Nerede çalışır
Tarayıcıda – yükleme yok

Şunlar için uygun değildir: İçinde liste olmayan, çok derin iç içe tek bir nesne: dönüşür, ama tablo yerine çok geniş tek bir satır olarak.

Satırlar hangi listeden gelir

En üst düzeydeki liste satırları oluşturur. Öyle bir liste yoksa araç belgenin içinde, sekiz düzeye kadar derinlikte, en uzun nesne listesini arar. Böylece {"response": {"data": {"items": [...]}}} de {"results": [...], "count": 2, "next": null} de her öğe için bir satır verir ve sonucun altındaki satır kullanılan listenin adını söyler, örneğin results. count ve next gibi o listenin yanındaki değerler hiçbir kaydın parçası değildir ve dışarıda kalır.

Eşit uzunluktaki iki listeden en üste yakın olanı kazanır. Daha kısa bir listeyi istiyorsanız onu [ işaretinden ] işaretine kadar kopyalayıp yalnızca onu yapıştırın. Nesne listesi olmayan bir belge tek satır olur ve tek anahtarlı sarmalayıcılar atlanır; {"order": {"id": 7, "total": 12}} id ve total sütunlarını verir.

Değerler hücrelere nasıl yazılır

Metin birebir kopyalanır; tarihler de JSON’da hangi biçimdeyse o biçimde kalır, örneğin 2024-01-05T10:00:00Z. true ve false sözcük olarak yazılır. null, boş liste ve boş nesne, üçü de boş hücre olur; yani CSV’de hiç olmayan bir alanla aynı görünürler.

Sayı tam olarak JSON’daki gibi yazılır: 1.0 yine 1.0, 1e21 yine 1e21 olarak kalır ve 12345678901234567890 gibi bir kimlik numarası tırnaksız olsa bile her basamağını korur. Sıradan bir JSON okuyucu o numarayı 12345678901234567000’e çevirirdi.

Liste içindeki listeler ve zaten nokta içeren anahtarlar

Liste listesi bir düzey açılır: "m": [[1, 2], [3]] içinde 1;2 bulunan bir m.0 sütunu ve 3 bulunan bir m.1 sütunu verir. Nesnelerle düz değerleri karıştıran bir listede her öğe numaralanır; "x": [{"z": 1}, 2] x.0.z ve x.1 sütunlarını verir.

Sütun adları anahtarlar noktayla birleştirilerek oluşur; bu yüzden zaten nokta içeren bir anahtar iç içe bir anahtarla çakışabilir: {"a.b": 1, "a": {"b": 2}} iki kez a.b üretirdi. İkincisine bir ek verilir; sütunlar a.b ve a.b_2 olur ve iki değer de korunur.

Ayırıcıyı seçmek ve = ile başlayan hücreler

Olağan seçim virgüldür. Noktalı virgül, ondalıkları virgülle yazan bir dile ayarlı elektronik tablolara uyar; orada virgülle ayrılmış bir dosya çoğu zaman tek sütunda açılır. Sekme ve dikey çizgi, bunları isteyen sistemler içindir. Ayırıcı ne olursa olsun dosyanın uzantısı .csv olur.

=, +, - ya da @ ile başlayan bir hücre elektronik tablo için bir formüldür ve dosya açılırken çalıştırılır. Böyle bir hücrenin önüne, elektronik tabloların kendilerinin “bu bir metindir” demek için kullandığı kesme işareti konur; =1+1 böylece '=1+1 olarak yazılır. -5 ya da +3.5 gibi düz sayılar olduğu gibi bırakılır.

Sık sorulan sorular

Dosyam bir sunucuya yükleniyor mu?
Hayır. Dönüştürme tamamen tarayıcınızda, kendi cihazınızın gücüyle yapılır. Dosya bilgisayarınızdan ya da telefonunuzdan çıkmaz; bir araç bir kez kullanıldıktan sonra internetsiz de çalışmaya devam eder.
İç içe nesnelere ve listelere ne olur?
İç içe nesne nokta ile ayrılmış sütunlara düzleştirilir: {"adres":{"il":"Ankara"}} adres.il adlı bir sütun olur. Düz değer listesi ("etiketler": ["a","b"]) tek hücrede a;b olarak yazılır. Kaydın içindeki nesne listesi kalemler.0.ad, kalemler.1.ad gibi numaralı sütunlar alır.
JSON’um liste değil, nesne. Ne alırım?
İçindeki en uzun kayıt listesi satırlar olur: {"results": [...], "count": 2, "next": null} her sonuç için bir satır verir ve sonuç satırı kullanılan listenin adını söyler. O listenin yanındaki değerler hiçbir kaydın parçası değildir ve dışarıda kalır. İçinde liste olmayan bir nesne, her anahtar için bir sütunla tek satır olarak yazılır.
Excel neden garip karakterler gösteriyor, nasıl düzelir?
Dosya bir BOM ile başlamıyorsa Excel kodlamayı tahmin eder. «Excel için BOM ekle» seçeneği varsayılan olarak açıktır ve o üç baytlık işareti ekler; düz UTF-8 isteyen araçlar için kapatın. Excel sütunları ayırmıyorsa çıktı ayırıcısını noktalı virgül yapın: Türkçe Excel CSV’de onu bekler.

İlgili araçlar

Tablolar ve veriler içinde daha fazlası

Bu sayfa diğer dillerde: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা