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.

İlgili diğer araçlar

Kaynaklar