tooly

CSV'yi JSON'a dönüştür online

Bir CSV dışa aktarımı yapıştırın, bir API, betik veya yapılandırma dosyası için hazır JSON nesneleri dizisi alın — ayırıcı otomatik algılanır, hiçbir şey yüklenmez.

Her şey tarayıcınızda çalışır — hiçbir şey gönderilmez

Nasıl kullanılır

  1. 1

    CSV'nizi yapıştırın — ilk satır başlık olmalıdır.

  2. 2

    Her değerin metin kalması gerekmiyorsa "sayıları ve booleanları algıla" seçeneğini açık bırakın.

  3. 3

    JSON'u kopyalayın veya dosya olarak indirin.

Bir tabloyu neden JSON'a çevirmeli

CSV, tablo programlarının, CRM'lerin, bankaların ve analiz panellerinin dışa aktardığı formattır. JSON ise web API'lerinin, JavaScript kodunun, NoSQL veritabanlarının ve çoğu yapılandırma sisteminin tükettiği formattır. Bu dönüşüme sürekli ihtiyaç duyulur: bir iş arkadaşınızın tuttuğu tablodan bir test veritabanını doldurmak, bir ürün listesini ön yüz prototipi için fixture'lara çevirmek, bir yönlendirme veya çeviri listesini bir derleme betiğine vermek ya da yalnızca JSON kabul eden bir API'ye toplu kayıt göndermek.

Buradaki çıktı, her veri satırı için bir nesne içeren bir JSON dizisidir. Başlık satırı özellik adlarını sağlar; böylece sku, title ve price sütunlarına sahip bir tablo, tam olarak bu üç anahtara sahip, döngüyle gezilmeye hazır nesnelere dönüşür.

Ayrıştırıcı CSV'nizi nasıl okur

CSV, bir değer ayırıcıyı içerene kadar basit görünür. Ayrıştırıcı, CSV'nin bir standarda en yakın karşılığı olan RFC 4180 kurallarını izler:

  • Çift tırnak içine alınmış bir alan ayırıcıyı, satır sonlarını ve tırnakları içerebilir. "Smith, John" tek bir değer olarak kalır.
  • Tırnaklı bir alanın içindeki tırnak iki kez yazılır: "6"" pipe", 6" pipe olur.
  • Satırlar Windows tarzı CRLF veya Unix tarzı LF ile bitebilir; ikisi de işlenir.
  • Excel'in CSV UTF-8 olarak kaydederken başa eklediği bayt sırası işareti (BOM) kaldırılır, böylece ilk sütun adına yapışık kalmaz.
  • Tamamen boş satırlar atlanır.

Ayırıcı, ilk satırdaki virgüller, noktalı virgüller, sekmeler ve dikey çizgiler sayılarak ve en sık olanı seçilerek belirlenir. Bu neredeyse her dışa aktarım için işe yarar, ancak başlığın temsil edici olmasına dayanır. Başlığınız ayırıcı içermeyen tek bir sütunsa virgül varsayılır.

Başlık adlarının etrafındaki boşluklar kırpılır, böylece price anahtarı price olur. Veri satırlarındaki değerler ise baştaki veya sondaki boşluklar dahil tam olarak yazıldığı gibi korunur.

Tipli değerler ve metinler

"Sayıları ve booleanları algıla" açıkken her hücre kısa bir kural listesine göre kontrol edilir:

  • 42, -7 ve 19.99 gibi düz tam sayılar ve ondalıklı sayılar, en fazla 15 haneye sahip oldukları sürece JSON sayılarına dönüşür.
  • Küçük harfle tam olarak true ve false boolean olur. TRUE, Yes veya 1 oldukları gibi kalır.
  • Boş bir hücre null olur.
  • Daha uzun rakam dizileri, 1.5e3, +5, .5, 1,234 ve tarihler dahil diğer her şey metin olarak kalır.

Bu, çoğu veri için kullanışlıdır, ancak JSON'daki sayılar biçimlendirme taşımaz; bu yüzden bazı değerler tipe çevrildiğinde anlam değiştirir:

  • Baştaki sıfırlar kaybolur. ABD posta kodu 02134, 2134 olur; 007 ürün numarası ise 7 olur.
  • Uzun rakam dizileri hassasiyet kaybederdi. JavaScript sayıları yalnızca yaklaşık 15 anlamlı haneye kadar kesindir; bu yüzden 20 haneli bir sipariş kimliği veya kart numarası gibi daha fazla haneye sahip değerler yuvarlanmak yerine metin olarak tutulur.
  • Artı işareti veya boşluk içermeyen telefon numaraları da sayıya dönüşür.

Herhangi bir sütun miktar değil tanımlayıcı içeriyorsa seçeneği kapatın ve gerçekten sayısal olan birkaç alanı kendi kodunuzda dönüştürün. Seçenek kapalıyken boş hücreler null yerine boş metin olur.

Çıktı yanlış göründüğünde

  • Her şey tek bir anahtara düşüyor. Ayırıcı algılanamadı; genellikle başlık verilerden farklı bir ayırıcı kullandığı veya hiç ayırıcı içermediği için. İlk satırı kontrol edin.
  • Değerler bir sütun kaymış. Bir alan ayırıcıyı içeriyor ama tırnak içinde değil. Elle düzenlemek yerine kaynak uygulamadan yeniden dışa aktarın; tablo programları bu tür alanları otomatik olarak tırnak içine alır.
  • Fazla sütunlar kayboluyor. Anahtarlar yalnızca başlıktan gelir, bu yüzden son başlık sütununun ötesindeki hücreler atılır. Daha az hücreye sahip satırlarda eksik olanlar için null veya boş metin kullanılır.
  • İki sütun, tek anahtar. Başlıkta bir ad tekrarlanıyorsa, sonraki sütun her nesnede öncekinin üzerine yazar. Önce birini yeniden adlandırın.
  • é gibi garip karakterler. Dosya eski bir kodlamayla kaydedilmiş. Onu yeniden CSV UTF-8 olarak kaydedin ve tekrar yapıştırın.

Sonuçla çalışmak

JSON 2 boşluk girintiyle yazdırılır; bu okumak ve bir depoya commit etmek için uygundur. Bir API isteği için küçültmek veya girintisini değiştirmek isterseniz onu JSON formatlayıcı aracından geçirin. Düzenledikten sonra ters yönde gitmek için JSON'u CSV'ye dönüştür diziden yeniden bir tablo oluşturur. Dönüşüm tamamen sayfa içinde çalışır; dışa aktarım müşteri adları, e-postalar veya maaşlar içerdiğinde bu önemlidir.

SSS

Hangi ayırıcılar destekleniyor?

Virgül, noktalı virgül, sekme ve dikey çizgi ilk satırdan otomatik algılanır.

Tırnaklı alanlar işleniyor mu?

Evet — tırnaklar, virgül içeren alanlar, tırnak içindeki satır sonları ve çift tırnaklar RFC 4180'e uygun şekilde işlenir.

"Sayıları ve booleanları algıla" ne yapar?

"42" 42 olur, "true" true olur ve boş hücreler null olur. 15 haneden uzun rakam dizileri tam değerlerini korumak için metin olarak kalır. Başında sıfır olan posta kodları gibi her şeyin metin kalmasını istiyorsanız kapatın.

Verilerim yükleniyor mu?

Hayır. Ayrıştırma tarayıcınızda gerçekleşir.

Excel dosyalarını dönüştürebilir miyim?

Önce sayfayı CSV olarak kaydedin (Dosya → Farklı Kaydet → CSV UTF-8), ardından buraya yapıştırın.

İlgili araçlar