Camaro ile XML to JSON

Image for post
Image for post

Merhaba sevgili dostlar, bu yazımda sizlere güzel bir paketten bahsetmek istiyorum.

Paketimizin adı Camaro, peki ne işe yarıyor bu paket? Camaro XML’i JSON objesine çevirmemizi sağlıyor. Çevirirken de, tüm XML’i değil, sadece istediklerimizi JSON objesinin içerisine koyuyor. Çok uzatmadan hemen bir örnek ile nasıl çalıştığına dair bir ipucu vereyim.

Örnek olarak aşağıdaki gibi bir XMLimiz olsun.

XML tanımını JSON objesine çevirmek için öncelikle bir template yani bir kalıp oluşturuyoruz. Hangi alanlar, hangi isimlerle dönüştürülsün, tipi numara mı true/false mu olsun gibi. Yukarıdaki XML tanımı için bir template oluşturalım.

  • Cevabımızın array of objects olmasını istiyoruz yani bir arrayin içinde <user> etiketindeki alanların olduğu objeler olacak. O yüzden arrayin ilk elemanını bu tanım için ayırıyoruz (‘userlist/user’).
  • Arrayin 2. elemanında ise bu user etiketindeki hangi alanları hangi veri tiplerinde istediğimizi tanımlıyoruz. Burada isterseniz hangi tanımların kabul edildiğini listeleyelim:

String veri tipi için şunları kullanabiliriz: lower-case, upper-case, title-case, camel-case, snake-case, string-join, raw, Örn: title-case(name)
Number için number, Örn: number(age)
Boolean için boolean, Örn: boolean(isWorking = “true”)

Kalıbımızı oluşturduktan sonra ise, hem XML tanımımızı hem de kalıbımızı camaro’ya veriyoruz ve dönüştürme işlemini bekliyoruz.

Image for post
Image for post
Image for post
Image for post
XML Tanımı ve Oluşturulan JSON Objesi

Tabii biz burada sadece 1 senaryo (array of objects) dönüştürmesi üzerine çalıştık, daha farklı senaryolar ve template tanımları için Camaronun Github sayfasını ve örneklerini inceleyebilirsiniz.

Kaynak kodun tamamı aşağıdadır. Umarım faydalı bir yazı olmuştur. Herkese iyi seneler!

Not: Eğer worker_threads ile ilgili bir hata alırsanız, Node.js versiyonundan kaynaklanıyordur. Node.js 12 veya daha üzeri bir sürüm kullanmanız gerekiyor. Bende Node.js 10 yüklü olduğu için 5.0.3 versiyonu ile bu yazıyı yazdım.

XML to JSON Kaynak Kod

Written by

Full-Stack Front End Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store