CSV ve JSON dönüştürücü
CSV’yi nesne veya dizi içeren bir JSON dizisine, JSON’u da CSV’ye dönüştürür. Ayırıcıyı algılar, noktalı virgül ve ondalık virgül kullanan Excel dosyalarını okur.
Kod örnekleri
Bu örnekleri kendi projenize kopyalayın. Her biri yalnızca dilin standart kütüphanesini kullanır, bu yüzden kurulacak bir şey yoktur.
const text = 'name,city\nAnn,Utrecht\nBob,"Den Haag, NL"\n'
const trimmed = text.trimEnd()
const records = [[]]
for (const match of trimmed.matchAll(/("(?:[^"]|"")*"|[^,\n]*)(,|\n|$)/gu)) {
if (match.index === trimmed.length) break
const [, field, end] = match
records.at(-1).push(field.startsWith('"') ? field.slice(1, -1).replaceAll('""', '"') : field)
if (end === '\n') records.push([])
}
const [header, ...rows] = records
const objects = rows.map((row) => Object.fromEntries(header.map((name, i) => [name, row[i]])))
console.log(JSON.stringify(objects))Ne yapar
CSV’yi JSON dizisine, JSON’u da CSV’ye dönüştürür. CSV’yi RFC 4180’e göre okur: tırnak içindeki alanlar, çift tırnaklar ve alan içindeki satır sonları.
Nasıl kullanılır
- CSV veya JSON yapıştırın ya da bir dosya bırakın.
- CSV’den JSON’a veya JSON’dan CSV’ye seçin. Ayırıcı ve ondalığı Algıla’da bırakın ya da kendiniz ayarlayın.
- Sonucu kopyalayın veya indirin ya da Çıktıyı girdi olarak kullan ile sonraki girdi yapın.
Örnekler
ad;fiyat / peynir;12,50 CSV’si [{"ad": "peynir", "fiyat": 12.5}] olur; Başlık satırı kapalıyken [["ad", "fiyat"], ["peynir", 12.5]] olur.
Bilmekte fayda var
- Başlık satırı açıkken her satır, anahtarları sütun adları olan bir nesne olur; alan sayısı farklı bir satır, satır numarasıyla bildirilir.
- Ayırıcı ilk satırlardan algılanır: virgül, noktalı virgül, sekme veya dikey çizgi. Noktalı virgül ve ondalık virgül kullanan Excel dosyalarını Algıla 12.5 olarak okur.
- Bir değer yalnızca aynen geri okunabiliyorsa sayı olur;
007,1.50ve çok uzun sayılar metin kalır. Her şeyi metin olarak tutmak için sayı okumayı kapatın. - JSON’dan CSV’ye nesne dizisi (sütunlar anahtarların birleşimidir) veya dizi dizisi gerekir. İç içe değerler JSON metni olarak yazılır.
CSV dosyası nasıl okunur?
RFC 4180’e göre: alanlar bir ayırıcıyla ayrılır, çift tırnak içindeki alan ayırıcıyı ve satır sonlarını içerebilir, içindeki tırnak iki kez yazılır. Ayırıcı ilk satırlardan algılanır: virgül, noktalı virgül, sekme veya dikey çizgi.
Sık sorulan sorular
Sayılarım neden metin oluyor, ya da tersi?
Bir değer yalnızca aynen geri okunabiliyorsa sayı olur; 007, 1.50 ve çok uzun sayılar metin kalır. Her şeyi metin olarak tutmak için “Sayıları ve true/false değerlerini oku” seçeneğini kapatın.
Noktalı virgüllü Excel biçimi nedir?
Türkçe bölge ayarlarında Excel alanlar arasına noktalı virgül, ondalık ayırıcı olarak virgül yazar. Ayırıcı veya ondalık “Algıla” iken 12,50 değeri 12.5 olarak okunur; ondalık virgül seçerseniz JSON’dan CSV’ye noktalı virgüllü dosya yazılır.
Verilerim bir yere gönderiliyor mu?
Hayır. Dönüştürme tarayıcınızda yapılır. Yapıştırdığınız şey sunucularımıza asla gönderilmez.