C# ile JSON ve XML Veri İşleme: Veri Dünyasına Açılan Kapılar
Selamlar sevgili kod dostları! Bugün, C# dünyasında veri işlemenin iki önemli oyuncusu olan JSON ve XML’e dalış yapıyoruz. Hazır mısınız? O zaman kemerleri bağlayın, çünkü bu yolculukta veri okuma, yazma ve dönüştürme becerilerinizi geliştireceksiniz.
Neden JSON ve XML?
Günümüzde uygulamalar, verileri farklı kaynaklardan alıp farklı formatlarda sunabiliyor olmalı. İşte tam bu noktada JSON (JavaScript Object Notation) ve XML (eXtensible Markup Language) devreye giriyor.
* JSON: İnsan tarafından okunabilir, hafif ve veri alışverişi için ideal bir format. Özellikle web servisleri ve API’lerle iletişimde sıklıkla kullanılır.
* XML: Daha karmaşık veri yapılarını temsil edebilen, yapılandırılmış bir metin formatı. Genellikle yapılandırma dosyalarında ve veri depolama sistemlerinde tercih edilir.
JSON ile Dans Etmek: Okuma, Yazma ve Dönüştürme
C# ile JSON işlemleri için kullanabileceğimiz birçok kütüphane var. Benim favorim ise `Newtonsoft.Json` (nam-ı diğer Json.NET). NuGet paket yöneticisi üzerinden kolayca projenize ekleyebilirsiniz.
1. JSON Okuma:
Diyelim ki elimizde şöyle bir JSON verisi var:
“`json
{
“ad”: “Ahmet”,
“soyad”: “Yılmaz”,
“yas”: 30,
“hobiler”: [“Kitap okumak”, “Yüzmek”, “Seyahat etmek”]
}
“`
Bu veriyi C# nesnesine dönüştürmek için şu adımları izleyebiliriz:
“`csharp
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
public class Program
{
public class Kisi
{
public string ad { get; set; }
public string soyad { get; set; }
public int yas { get; set; }
public List hobiler { get; set; }
}
public static void Main(string[] args)
{
string jsonVerisi = @”{
“”ad””: “”Ahmet””,
“”soyad””: “”Yılmaz””,
“”yas””: 30,
“”hobiler””: [“”Kitap okumak””, “”Yüzmek””, “”Seyahat etmek””]
}”;
Kisi ahmet = JsonConvert.DeserializeObject(jsonVerisi);
Console.WriteLine(“Ad: ” + ahmet.ad);
Console.WriteLine(“Soyad: ” + ahmet.soyad);
Console.WriteLine(“Yaş: ” + ahmet.yas);
Console.WriteLine(“Hobiler: ” + string.Join(“, “, ahmet.hobiler));
}
}
“`
2. JSON Yazma:
Şimdi de elimizdeki bir C# nesnesini JSON formatına dönüştürelim:
“`csharp
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
public class Program
{
public class Kisi
{
public string ad { get; set; }
public string soyad { get; set; }
public int yas { get; set; }
public List hobiler { get; set; }
}
public static void Main(string[] args)
{
Kisi ayse = new Kisi
{
ad = “Ayşe”,
soyad = “Demir”,
yas = 25,
hobiler = new List { “Resim yapmak”, “Müzik dinlemek” }
};
string jsonAyse = JsonConvert.SerializeObject(ayse, Formatting.Indented);
Console.WriteLine(jsonAyse);
}
}
“`
3. JSON Dönüştürme:
Bazen elimizdeki JSON verisi tam istediğimiz formatta olmayabilir. Bu durumda `Json.NET` ile dönüştürme işlemleri yapabiliriz. Örneğin, bir JSON dizisini farklı bir nesneye dönüştürmek veya belirli alanları filtrelemek mümkün.
XML’in Gizemli Dünyası: Okuma, Yazma ve Dönüştürme
XML, JSON’a göre biraz daha karmaşık bir yapıya sahip. C# ile XML işlemleri için `System.Xml` ve `System.Xml.Linq` namespace’lerini kullanabiliriz.
1. XML Okuma:
Şöyle bir XML dosyamız olduğunu varsayalım:
“`xml
Suç ve Ceza
Dostoyevski
1866
1984
George Orwell
1949
“`
Bu XML dosyasını okumak için şu kodu kullanabiliriz:
“`csharp
using System;
using System.Xml.Linq;
public class Program
{
public static void Main(string[] args)
{
XDocument xmlDosyasi = XDocument.Load(“kitaplik.xml”);
foreach (XElement kitap in xmlDosyasi.Root.Elements(“kitap”))
{
Console.WriteLine(“Kitap ID: ” + kitap.Attribute(“id”).Value);
Console.WriteLine(“Ad: ” + kitap.Element(“ad”).Value);
Console.WriteLine(“Yazar: ” + kitap.Element(“yazar”).Value);
Console.WriteLine(“Yayın Yılı: ” + kitap.Element(“yayinyili”).Value);
Console.WriteLine(“——————“);
}
}
}
“`
2. XML Yazma:
Şimdi de XML dosyası oluşturalım:
“`csharp
using System;
using System.Xml.Linq;
public class Program
{
public static void Main(string[] args)
{
XDocument yeniXml = new XDocument(
new XDeclaration(“1.0”, “UTF-8”, “yes”),
new XElement(“ogrenciler”,
new XElement(“ogrenci”, new XAttribute(“id”, “1”),
new XElement(“ad”, “Ali”),
new XElement(“soyad”, “Can”),
new XElement(“bolum”, “Bilgisayar Mühendisliği”)
),
new XElement(“ogrenci”, new XAttribute(“id”, “2”),
new XElement(“ad”, “Zeynep”),
new XElement(“soyad”, “Su”),
new XElement(“bolum”, “Elektrik Mühendisliği”)
)
)
);
yeniXml.Save(“ogrenciler.xml”);
Console.WriteLine(“ogrenciler.xml dosyası oluşturuldu.”);
}
}
“`
3. XML Dönüştürme:
XML verisini farklı bir formata (örneğin, JSON) dönüştürmek veya XML şemasını değiştirmek de mümkün. Bunun için XSLT (Extensible Stylesheet Language Transformations) kullanabilirsiniz.
JSON ve XML, veri alışverişi ve depolama için güçlü araçlardır. C# ile bu formatları okuma, yazma ve dönüştürme becerisi, size birçok projede avantaj sağlayacaktır. Umarım bu yazı, JSON ve XML dünyasına giriş yapmanıza yardımcı olmuştur.
Unutmayın, pratik yapmak her zaman en iyi öğrenme yöntemidir. Kod yazmaya devam edin, deneyin, keşfedin ve veri dünyasının kapılarını aralayın!
Bonus:
* `Json.NET` kütüphanesinin daha gelişmiş özelliklerini (custom converter’lar, schema validation vb.) araştırmanızı öneririm.
* XML şemaları (XSD) hakkında bilgi edinerek, XML verinizin geçerliliğini kontrol edebilirsiniz.
Hepinize bol kodlu günler dilerim! 😊