CSV ↔ JSON Dönüştürücü (RFC 4180 uyumlu)
CSV veya JSON yapıştır. Dönüştürücü, RFC 4180 uyumlu CSV'yi ayrıştırır (virgüllü alıntılanmış alanlar, kaçan alıntılar, çok satırlı değerleri işler). JSON'dan CSV'ye için hem nesne dizisi (anahtarları başlık olarak kullanır) hem de dizi dizisi kabul eder.
[
{
"name": "Alice",
"age": "30",
"city": "Tokyo"
},
{
"name": "Bob",
"age": "25",
"city": "Seoul"
},
{
"name": "Carol",
"age": "42",
"city": "Madrid"
}
]Nasıl çalışır
RFC 4180 neden önemlidir?
CSV basit görünür ama kenar durumları vardır: virgül içeren bir alan tırnak içine alınmalıdır; tırnak içeren bir alan tırnak karakterini çift tırnak olarak kaçırmalıdır; alıntılanmışsa bir alan satır sonları içerebilir. Naif virgülde-böl ayrıştırıcıları gerçek dünya verilerinde bozulur. Bu dönüştürücü RFC 4180 gramını tam olarak uygular.
Naif ayrıştırıcılar, ondalık ayırıcı olarak ',' kullanılan Avrupa yerel ayarlarında yaygın olan noktalı virgül kullanan Excel dışa aktarımlarında veya sekmelerde (TSV) da bozulur. Ayırıcı açılır menüsü yaygın dört varyantın tamamını işler.
Çıktı için JSON şekilleri
Nesne dizisi (başlık satırıyla varsayılan): her satır {sütun: değer} olur. Herhangi bir dilde kullanımı kolay en yaygın JSON şekli.
Dizi dizisi (başlık satırı kapalı): her satır [d1, d2, ...] olur. Sütunlar adlandırılmamış veya konumsal yapı istediğinizde kullanışlı.
JSON'dan CSV'ye giderken dönüştürücü hangi şekle sahip olduğunu algılar. Nesneler: başlıklar için tüm satırlardaki benzersiz anahtarları çıkarır. Diziler: satırları olduğu gibi yazar.
Yaygın tuzaklar
Excel yerel ayarı: bazı Avrupa Excel yüklemelerinde varsayılan ayırıcı ',' değil ';'dir. CSV içe aktarıldığında dev bir sütun gibi görünüyorsa ayırıcı açılır menüsünde ;'ye geçin.
BOM (Bayt Sırası İşareti): bazı Excel dışa aktarımları dosyayı U+FEFF ile önekler. Bunu aktarıyoruz; aşağı akış ayrıştırıcınız başarısız olursa ilk 3 baytı çıkarın.
Sondaki satır sonu: '\n' ile biten CSV bazı ayrıştırıcılarda boş son satır ekler; boş satırları otomatik olarak filtreleriz.
Dize olarak sayılar: CSV türsüzdür — '42' JSON'da "42" dizesi olur. Tipli değerlere ihtiyaç duyuyorsanız bilinen sayı sütunlarını zorlayan bir son işleme adımı çalıştırın.
Sık sorulan sorular
›Virgüllü tırnaklı alanları işliyor mu?
Evet — RFC 4180 alıntılama tam olarak desteklenir. "Yılmaz, Ahmet" tek alan olarak ayrıştırılır.
›Kaçan tırnaklar nasıl işlenir?
RFC 4180'e göre, alıntılanmış alan içindeki gerçek '"', '""' (çift tırnak) olarak yazılır. Ayrıştırıcı bunu doğru işler.
›Alanlar satır sonları içerebilir mi?
Evet, alıntılandığında. Tırnak içindeki "satır 1\nsatır 2" gömülü satır sonuyla tek alan olarak değerlendirilir.
›BOM (UTF-8) destekliyor mu?
BOM aktarılır. Aşağı akış tüketiciniz buna dayanmıyorsa CSV'den ilk 3 baytı (EF BB BF) çıkarın.
›Büyük dosyalar ne olacak?
Tarayıcı birkaç MB'yi sorunsuz işler. Çok büyük CSV'ler (100MB+) için bir worker ile Papa Parse gibi akışlı ayrıştırıcı veya CLI aracı kullanın.
›Sayılar sayı olarak korunuyor mu?
CSV → JSON: tüm değerler dize olur (CSV türsüzdür). JSON → CSV: sayılar tırnaksız CSV hücresi olur. Tipli JSON elde etmek için sayısal olduğunu bildiğiniz sütunları sonradan işleyin.
›JSON'umda neden null yerine boş dizeler görüyorum?
CSV eksik değerleri boş hücreler olarak temsil eder. Bunları boş dizelere eşliyoruz. JSON'da null elde etmek için çıktıyı sonradan işleyin.
›Veriler tarayıcımı terk ediyor mu?
Hayır. Dönüştürme yerel olarak çalışır; sunucuya hiçbir şey gönderilmez.
İlgili araçlar
Son güncelleme: