JSON ve CSV: Veriyi taşırken anlamını koruyun
Başarılı dönüşüm, yalnızca açılan bir dosya üretmek değildir. Ürün kimliği kimlik, fiyat fiyat, eksik veri de eksik veri olarak kalmalıdır. Tür ve yapı hataları, hata mesajı çıkmadan geçebilir.
Düz satırlar mı, iç içe veri mi?
CSV, satır ve alanlardan oluşan tablolara uygundur. JSON ise türü belirli değerler, listeler ve iç içe nesneler gösterebilir. Bir kayıtta birden fazla adres veya ürün varsa CSV’ye aktarmadan önce bunların sütunlara nasıl açılacağını belirleyin. Her yapı için tek bir doğru tablo biçimi yoktur.
Kaynaklar: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Biçimlendirme ile doğrulama aynı değildir
JSON’u biçimlendirmek girintileri okunur yapar; fiyatın veya tarihin doğru olduğunu kanıtlamaz. Şema doğrulaması belirtilen türleri ve zorunlu alanları kontrol eder; anlamı yine uygulamanın kuralları belirler.
JSON’da tırnak içindeki metin sayıdan farklıdır. CSV alanı virgül veya satır sonu içeriyorsa uygun tırnaklama gerekir; tırnaklı alanın içindeki tırnak işaretleri çift yazılır.
Kaynaklar: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Dönüşümden sonra neyi kontrol etmeli?
Orijinali saklayın. Kayıt sayısını ve sütun adlarını karşılaştırın; normal bir kayıtla boş değer, noktalama veya çok dilli metin içeren bir kaydı inceleyin. Çıktıyı gerçekten kullanacak uygulamada açın; dönüştürücü o uygulamanın içe aktarma tercihlerini garanti edemez.
- Baştaki sıfırlar kimliğin parçasıysa 0017 gibi değerleri metin olarak koruyun.
- Boş değer, null ve 0’ı bilinçli karar olmadan eşitlemeyin.
- Gizli anahtar veya gerçek kişi kaydı yerine yapay örnek kullanın.
- Güvenilmeyen CSV’yi elektronik tabloda dikkatle açın; bazı hücreler metin yerine formül sayılabilir.
Kaynaklar: OWASP — CSV Injection
Örnek: adın içindeki virgül
Örnek JSON: {"sku":"0017","name":"Defter, mavi","price":12.5}. Virgülle ayrılmış CSV’de ürün adını tırnaklayın: 0017,"Defter, mavi",12.5.
İçe aktarırken sku değerinin 17’ye dönüşmeden 0017 kaldığını ve ürün adının 2 sütuna bölünmediğini kontrol edin. Çıktı dosyasının oluşması bu koşulları tek başına kanıtlamaz.