← speedor.net

Veri dönüştürücüler

Ücretsiz veri biçimi dönüştürücüler: CSV ↔ JSON, JSON ↔ YAML ve JSON ↔ XML. Anında, gizli, doğrudan tarayıcınızda.

Veri nadiren tek bir formatta durur. Bir rapor elektronik tablo olarak gelir, API JSON ister, dağıtım hattı YAML bekler ve bir yerlerde bir eski sistem hâlâ XML konuşur. Verilerle çalışmadaki günlük sürtünmenin büyük kısmı verinin kendisinden değil, sahip olduğunuz şekli başka bir şeyin talep ettiği şekle dönüştürmekten kaynaklanır. Bir veri dönüştürücünün tüm işi budur: yapılandırılmış metni bir gösterimden alıp anlamını yitirmeden başka birine aktarmak.

CSV, JSON, YAML ve XML arasında veri taşıma

Veri nadiren tek bir formatta durur. Bir rapor elektronik tablo olarak gelir, API JSON ister, dağıtım hattı YAML bekler ve bir yerlerde bir eski sistem hâlâ XML konuşur. Verilerle çalışmadaki günlük sürtünmenin büyük kısmı verinin kendisinden değil, sahip olduğunuz şekli başka bir şeyin talep ettiği şekle dönüştürmekten kaynaklanır. Bir veri dönüştürücünün tüm işi budur: yapılandırılmış metni bir gösterimden alıp anlamını yitirmeden başka birine aktarmak.

Speedor'ın dönüştürücüleri tamamen tarayıcınızda çalışır. Yapıştırırsınız, tıklarsınız, sonucu kopyalarsınız. Hiçbir şey yüklenmez, hiçbir şey kaydedilmez ve hiçbir şey makinenizi terk etmez. Bir müşteri dışa aktarmasını rastgele bir web sitesine bırakmadan önce tereddüt eden herkes için yalnızca yerel tasarım tam da budur.

Her format gerçekte ne için iyidir

Aralarında geçiş yapmaya başlamadan önce bu formatların neden var olduğunu bilmek yardımcı olur; çünkü her biri farklı bir iş için oluşturulmuştur.

CSV, elektronik tabloların sevdiği düz, virgülle ayrılmış ızgaradır. Doğası gereği tablo şeklindedir: satırlar ve sütunlar, iç içe geçme yok. Excel, Google Sheets veya Numbers'da açın, direkt çalışır. Sorun şu ki CSV'nin tür kavramı yoktur. 007 değeri bir dize, bir sayı veya posta kodu olabilir; CSV hangisi olduğunu söylemez.

JSON, modern web'in ortak dilidir. Arayacağınız neredeyse her API bu dili konuşur. JSON, iç içe geçmeyi, dizileri ve birkaç gerçek türü (dizeler, sayılar, mantıksal değerler, null) destekler; bu da onu düz bir tablodan çok daha ifade edici kılar. Kompakt, makine dostu ve her yerde destekleniyor.

YAML, JSON'un daha okunabilir kuzenidir. Parantez yerine girintileme kullanır, yorumları destekler ve genellikle yapılandırma dosyaları, Docker Compose, Kubernetes manifestoları ve CI hattları için tercih edilen formattır. Bir insanın bir şeyi elle düzenlemesi gerektiğinde YAML genellikle göze daha dostanedir.

XML devlet büyüğüdür. Ayrıntılı, etiket ağırlıklı ve kurumsal sistemlere, SOAP servislerine, finansal mesajlaşmaya ve RSS gibi belge standartlarına derinden gömülüdür. Yeni projelerde daha az sıklıkla karşılaşırsınız; ancak ihtiyaç duyduğunuzda gerçekten ihtiyaç duyarsınız.

Koyu indigo ve camgöbeği renklerinde bir yapıdan diğerine dönüşen soyut parlayan veri blokları
Aynı veri, yeniden ifade edilmiş: anlam kaybolmadan bir yapıdan diğerine akan veri.

Dönüşümlerin gerçekte yaşandığı yerler

Durumlar, bir kez bakmaya başladığınızda oldukça somut. Diyelim ki pazarlama size 4.000 kişilik bir elektronik tablo verdi ve kayıt API'si yalnızca JSON dizisi kabul ediyor. Sayfayı CSV olarak dışa aktarın, CSV'den JSON'a çalıştırın ve POST'a hazır bir veri yükü elde edersiniz. Yapıştırıcı betik yok, pandas yok, bir mühendis bekleme yok.

Ya da aynı API'den bir JSON parçası çekiyorsunuz ve bunu hizmetinizin başlangıçta okuduğu bir yapılandırma dosyasına yerleştirmek istiyorsunuz. JSON'dan YAML'a ile dönüştürün ve doğrudan deponuza uyan, temiz ve yorumlanabilir bir şey elde edersiniz. Bir araç yalnızca JSON kabul ettiğinde ancak yapılandırmanız YAML'de yaşadığında ters yönde çalışmak da işe yarar.

Ve ardından kimsenin keyif almadığı entegrasyon var: yalnızca XML alan bir iş ortağı sistemi. Veri yükünüzü JSON olarak oluşturursunuz çünkü uygulamanız bu şekilde düşünür, ardından sınırda XML'e dönüştürürsünüz. Şekil aynı kalır, yalnızca sözdizimi değişir.

Bilmeye değer tuzaklar

Format dönüşümü her zaman kayıpsız değildir ve aksini varsaymak hatalara yol açar. Aklınızda bulundurmanız gereken birkaç şey:

CSV türleri unutur. Her hücre yalnızca metin olduğundan, sayılar, mantıksal değerler ve tarihler siz aksini söylemedikçe dize olarak çıkar. true'nun "true" kelimesi değil mantıksal değer olması gerekiyorsa, göndermeden önce çıktıyı kontrol edin.

YAML boşluk önemser. Girintileme YAML'de görünmez değil yapısaldır. Yanlış bir boşluk, bir değerin hangi anahtara ait olduğunu değiştirebilir ve sekmeler tamamen yasaktır. Herhangi bir JSON'dan YAML'ye gidiş-dönüşünün ardından hızlı bir göz atmaya değer; yapının kaldığını doğrulamak için sonucu bir JSON biçimlendiricisinden geçirebilirsiniz.

XML ve JSON tam olarak eşleşmez. JSON'un dizileri vardır; XML'in tekrarlanan öğeleri. JSON'un hiçbir yerinde öznitelikleri yoktur; XML'de her yerde vardır. Çoğu dönüştürücü makul bir kural seçer; ancak XML'niz öznitelikleri yoğun şekilde kullanıyorsa üretilen JSON, elle yazılmış JSON'dan biraz farklı görünür. Bu beklenen bir durumdur, bir hata değil.

İç içe geçme derinliği önemlidir. CSV düzdür; bu nedenle derinden iç içe geçmiş JSON her zaman anahtarları düzleştirmeden sütunlara çöküştürülemez (address.city gibi düşünün). Diğer yönde ise düz bir CSV, hiçbir zaman ağaç olmayan düz bir dizi haline gelir.

Lacivert, camgöbeği ve altın rengiyle iç içe parantez ağacına dönüşen parlayan veri tablosu satırları
Düz satırlar iç içe geçmiş ağaca açılıyor: aynı kayıtlar, daha zengin bir şekil.

Yalnızca yerel olması burada neden önemlidir

Dönüştürmek isteyeceğiniz verilerin çoğu paylaşmanıza izin verilmeyendir. Kullanıcı kayıtları, dahili yapılandırmalar, yanıtta gömülü API anahtarları, finansal satırlar. Pek çok çevrimiçi dönüştürücü yapıştırdığınız şeyi sessizce işi yapmak için bir sunucuya gönderir. Speedor bunu yapmaz. Dönüşüm mantığı tarayıcı sekmesinde çalışır, veriler ağı asla geçmez ve sekmeyi kapatmak tek gereken temizliktir. Ayrıca daha hızlıdır; yükleme gidiş-dönüşü yok ve sayfa yüklendikten sonra çevrimdışı çalışır. Ücretsiz, kayıt yok, kota yok.

Sık sorulan sorular

Dönüştürdüğümde verilerim herhangi bir yere yükleniyor mu?

Hayır. Her dönüşüm, JavaScript kullanarak tarayıcınızda yerel olarak çalışır. Verileriniz cihazınızı asla terk etmez ve bir sunucuya asla gönderilmez; bu nedenle bu araçlar çevrimdışıyken bile çalışır.

Herhangi bir kod yazmadan CSV'yi JSON'a dönüştürebilir miyim?

Evet. CSV'nizi dönüştürücüye yapıştırın, dönüştür'e tıklayın ve elde edilen JSON dizisini kopyalayın. İlk satır sütun başlıkları olarak kabul edilir ve her nesne için anahtar haline gelir.

Dönüştürülmüş JSON'um neden sayıları dize olarak gösteriyor?

CSV'nin veri türü kavramı yoktur; bu nedenle her değer metin olarak başlar. Bazı dönüştürücüler sayıları ve mantıksal değerleri otomatik olarak algılamaya çalışır; ancak şüphe durumunda baştaki sıfırlara sahip posta kodları veya kimlikler gibi şeyleri bozmamak için değerleri dize olarak saklarlar.

JSON ile YAML arasındaki fark nedir?

Aynı türde verileri temsil ederler; ancak YAML, ayraç ve parantez yerine girintileme kullanır, yorumlara izin verir ve genel olarak insanların okuyup düzenlemesi için daha kolaydır. JSON daha kompakttır ve çoğu web API'sinin varsayılanıdır.

Bu formatlar arasındaki dönüşüm her zaman kayıpsız mı?

Genellikle evet, ancak her zaman değil. JSON, YAML ve XML çoğu durumda birbiriyle iyi eşleşir. En zor eşleşmeler düz ve türsüz olan CSV ile öznitelikleri ve tekrarlanan öğeleri JSON dizilerinden farklı ele alan XML'dir. Önemli veriler için çıktıyı her zaman kontrol edin.

Bu dönüştürücüler büyük dosyalarda çalışıyor mu?

İş kendi makinenizde yapıldığından çoğu günlük dosyayı rahatlıkla işliyorlar. Performans sunucu yerine cihazınıza bağlıdır; bu nedenle çok büyük dosyalar esas olarak tarayıcı belleğinizle sınırlıdır.