C# LINQ ile Json verileri işlemeyi öğrenmek için doğru yerdesiniz Bu eğitim ile LINQ sorgularını kullanarak Json verileri okuyabilir, filtreleyebilir, sıralayabilir ve yeniden şekillendirebilirsiniz Hem başlangıç seviyesinde hem de ileri düzeydeki geliştiriciler için uygun olan bu eğitimi kaçırmayın!

C# programlama dili, son yıllarda oldukça popüler bir dil haline gelmiştir. Bu dil, farklı veri tiplerini ve formatlarını işlemek için geniş bir API koleksiyonuna sahip. Bu API'lerden biri de LINQ'dur. LINQ, SQL benzeri dilleri C# gibi ana programlama dilinde kullanmanızı sağlayarak, verileri daha anlaşılır hale getirir ve analiz edilmesini kolaylaştırır.
Bu makalede, C# kullanarak JSON verilerinin işlenmesi hakkında bilgi verilecek. JSON verileri düşük maliyetli ve hafif bir veri değişim biçimi olarak bilinir. LINQ kullanarak, bu verilerin değiştirilmesi, okunması, güncellenmesi veya silinmesi kolaydır.
Json Nedir?
JSON, verileri depolama, aktarma ve işleme yöntemidir. JSON, JavaScript nesne gösterimi olarak da bilinir ve son derece hafif, basit bir veri değişim biçimi olarak kullanılır. JSON, açık veri formatında yer almakta ve bu nedenle büyük ölçüde kullanıcılar tarafından tercih edilmektedir.
JSON dili, verileri yazmak için anahtar değer çiftleriyle kullanır. Bu çiftler, verilerin bir tanımlayıcısı ve gerçek değeri arasındaki ilişkiyi vurgular. Bu sayede veriler, çoklu biçimlerde saklanabilir, işlenebilir veya iletilebilir. JSON, belirli bir tür veya platforma bağımlı olmadığından, herhangi bir programlama dilinde veya işletim sisteminde kullanılabilir.
JSON, XML'den farklıdır ve birçok uygulama için daha uygun bir seçenek olabilir. Özellikle web geliştirme alanında, JSON veri formatı, Web Servisleri ve Ajax gibi uygulamaların popüler seçimi olarak kabul edilmektedir.
LINQ Nedir?
Language Integrated Query kelimelerinin kısaltmasıdır ve C# ile özdeşleşmiş bir API'dir. Bu, SQL benzeri dilleri C# gibi ana programlama dilinde kullanmanızı sağlar. LINQ, verileri bir dizi, liste, koleksiyon vb. gibi bir nesneden çok daha hızlı ve kolay bir şekilde sorgulamanıza olanak tanır. LINQ kullanarak, verilerinizi sorgularken veya sıralarken SQL'nin sağladığı tüm olanaklara da sahip olursunuz. Ayrıca, LINQ sorguları derleme anında hata kontrolü sağlar ve karmaşık SQL sorgularını yazmak zorunda kalmadan verileri kolayca işleyebilirsiniz. LINQ sorguları, basit, okunaklı ve yapılandırılmış olabilir, böylece herhangi bir programcı tarafından kolayca anlaşılabilir. LINQ, C# programlama dilinde verileri hızlı, kolay ve verimli bir şekilde sorgulamak için şaşırtıcı derecede güçlü bir araçtır.
Language Integrated QueryLINQ, Language Integrated Query kelimelerinin kısaltmasıdır ve C# ile özdeşleşmiş bir API'dir. LINQ, SQL benzeri dilleri C# gibi ana programlama dilinde kullanmanızı sağlar. LINQ, veritabanından veri almak ve manipüle etmek için kullanılır. LINQ kullanımı, geniş olan verilerin daha kolay yönetilmesine yardımcı olur. Diziler, koleksiyonlar, XML belgeleri, veritabanları gibi veri kaynaklarından veri almak ve sorgulamak için kullanılır. LINQ sorguları, veriye daha hızlı erişim ve ölçeklenebilirlik sunar. Veri sorgulama işlemleri için birçok LINQ operatörü vardır, bu operatörler sorguları filtrelemek, gruplamak, sıralamak, birleştirmek ve dönüştürmek için kullanılabilir.
kelimelerinin kısaltmasıdır ve C# ile özdeşleşmiş bir API. Bu, SQL benzeri dilleri C# gibi ana programlama dilinde kullanmanızı sağlar.LINQ, C# programlama dilinde kullanılan bir API'dir. Language Integrated Query kelimelerinin kısaltması olan LINQ, SQL benzeri dilleri C# gibi ana programlama dilinde kullanmanızı sağlar. Kodlarda verilerin aranması, analizi, sıralaması, eşleştirilmesi gibi operasyonlar yapmaktadır. LINQ, C# ile özdeşleşen bir API olması nedeniyle, yazılımcıların C# ile uğraştıkları her projede LINQ kullanabileceği bir çözümdür. LINQ, veri işleme işlemleri yürütmek için yazılım tasarımına yardımcı olan bir araçtır.
C# ile JSON parse işlemi
C# ile çalışırken, JSON verileri kullanıcı arayüzlerinde sıklıkla kullanılır. Bu veriler, web API'leri veya web servisleri aracılığıyla sunulabilir. JSON verilerini C# kodunda ayrıştırmak için, LINQ kullanarak JSON dosyasının içeriği okunabilir ve işlenebilir.
Bu işlem için JSON verilerine StreamReader ve JsonConvert sınıflarından yararlanılabilir. StreamReader sınıfı, JSON dosyalarının açılmasında kullanılırken JsonConvert sınıfı deserialization işlemlerinde kullanılmaktadır. Bunun için JSON nesnelerinin C# nesnesine çözümlenmesi için De-serialization işlemi kullanılır.
Json.NET Kütüphanesi | Newtonsoft.JSON |
---|---|
Json.NET, C# ile yazılmış bir popüler JSON kütüphanesidir. | Newtonsoft.JSON, C# ile yazılmış bir JSON kütüphanesidir ve JSON verilerini kolayca işlemenizi sağlar. |
JsonConvert.DeserializeObject metodu, JSON dosyasındaki verileri belirtilen sınıfa dönüştürür. LINQ kullanarak, JSON verilerinde sorgulama yapmak mümkündür. Bu, verilerin daha iyi anlaşılmasını ve analiz edilmesini sağlar. Örnek bir LINQ sorgusu ile JSON verilerinden belirli bilgileri çekebilirsiniz. Belirli özelliklere göre bir sorgu işlemi yapılabilir.
C# kullanarak, JSON verilerinde güncelleme yapmak için değiştirme işlemleri yapabilirsiniz. Belirli verilerin güncellenmesini sağlayabilirsiniz. JSON verilerinden istenmeyen bilgiler silinebilir veya sorgu sonuçlarına göre bu veriler silinebilir. Böylece, LINQ kullanarak JSON verilerini güncelleyebilir ve istenmeyen öğeleri silerken daha karmaşık sorgular da yapabilirsiniz.
JSON Verilerini Okuma
JSON verilerini işlemek için öncelikle, verilerin okunması gerekmektedir. Bu işlem, StreamReader ve JsonConvert sınıfları kullanılarak gerçekleştirilebilir. StreamReader, JSON dosyalarını açmak için kullanılan bir sınıftır.
Bunun yanı sıra JsonConvert sınıfı ise, JSON nesnelerin C# nesnesi haline dönüştürülmesi işlemi için kullanılır. JSON formatındaki verilerin, C# nesnelerine çözümlenmesini sağlar.
StreamReader kullanım örneği aşağıda görülebilir:
C# Kodu |
---|
string json = File.ReadAllText(@"C:\example.json");StreamReader reader = new StreamReader(json);string content = reader.ReadToEnd(); |
JsonConvert sınıfının ise kullanım örneği aşağıdaki gibidir:
C# Kodu |
---|
string json = @"{'name':'John Smith','age':30,'city':'New York'}";Person person = JsonConvert.DeserializeObject<Person>(json); |
Bu kodlar sayesinde, JSON verileri C# yapılarına dönüştürülebilir ve işlemler daha kolay bir şekilde yapılabilir.
De-serialization
De-serialization, JSON nesnelerinin çözümlenerek C# nesnelerine dönüştürüldüğü bir işlemdir. Bu işlem, JSON verileri C# nesneleri olarak belirli alanlara aktarılabilir ve daha sonrasında işlenebilir.
De-serialization işlemi için JSON verileri öncelikle bir JSON dosyasından okunmalıdır. StreamReader sınıfı bu işlem için kullanılabilir. Daha sonra, JsonConvert deserialization işlemi için kullanılır. Bu işlemde, JSON formatındaki veriler, belirtilen C# nesnelerine uygun olarak ayrıştırılır.
JSON formatındaki veriler, birkaç farklı C# nesnesine değiştirilebilir. Bu, verilerin belirli nesnelerde depolanmasını sağlar. Örneğin, bir JSON dosyasındaki veriler, bir dizi veya sözlük nesnesinde depolanabilir. Bu, belirli bir veriyi daha kolay bulmanıza ve işlemenize yardımcı olabilir.
De-serialization işlemi ile ilişkili olarak, NewtonSoft.JSON kütüphanesi sıklıkla kullanılır. Bu kütüphane, JSON verilerini kolayca işlemenizi sağlar ve ayrıştırma işlemini çok daha hızlı hale getirir.
- De-serialization işlemi, JSON verilerinin C# nesnelerine dönüştürülmesini sağlar.
- JSON verileri, belirli C# nesneleri olarak depolanabilir ve daha sonrasında işlenebilir.
- NewtonSoft.JSON kütüphanesi, ayrıştırma işlemini kolaylaştırır ve hızlandırır.
Newtonsoft.JSON Kütüphanesi
Newtonsoft.JSON, açık kaynak kodlu olarak sunulan ve C# programlama dili ile kullanılabilecek bir JSON kütüphanesidir. Bu kütüphane, JSON verileri ile kolay ve hızlı bir şekilde işlem yapmanızı sağlar. JSON verilerini okuma, yazma ve değiştirme işlemleri için bir dizi yardımcı araç sunar.
Newtonsoft.JSON, C# ile yazılırken performanslı bir yapıda tasarlanmıştır ve büyük JSON verileriyle bile kolayca başa çıkabilir. Kütüphane, deserialization işlemlerinde oldukça etkilidir ve JSON verilerini kolayca nesne olarak tanımlamanızı sağlar.
Ayrıca, Newtonsoft.JSON kütüphanesi, JSON verilerinin XML formatına dönüştürülmesini de destekler. Bu özellik sayesinde JSON verilerinizi, XML belge olarak kaydedebilir ve saklayabilirsiniz.
Newtonsoft.JSON, Microsoft tarafından da önerilen bir JSON kütüphanesidir ve C# ile çalışan birçok projede kullanılmaktadır. Kullanımı oldukça kolay olan bu kütüphane, C# programlama dili ile JSON verileriyle çalışırken işinizi oldukça kolaylaştırır.
JsonConvert.DeserializeObject
JSON verilerinin işlenmesinde en önemli adımlardan biri, verilerin istediğimiz şekilde çözümlenmesidir. JsonConvert.DeserializeObject metodu, JSON dosyasındaki verileri belirtilen sınıfa dönüştürmeyi sağlar. Bu sayede, JSON verilerinin C# kodu ile daha rahat bir şekilde kullanılması sağlanır.
JsonConvert.DeserializeObject metodu, JSON verilerini çözümlerken öncelikle belirtilen sınıfın örneklemesi yapılmalıdır. Daha sonra, JSON verileri belirtilen sınıfa dönüştürülerek, sınıf değişkenlerine atanır. Bu işlem sayesinde, JSON verilerindeki her özellik C# sınıf değişkenlerinde aynısı ile bulunur.
Örneğin, JSON formatındaki verilerde yer alan bir "ürün" nesnesi, C# sınıfında aynı özelliklere sahip bir nesne olarak tanımlanabilir. JsonConvert.DeserializeObject metodu, bu nesneler arasında otomatik bir dönüştürme gerçekleştirir. Böylece, JSON verileri C# kodunda kullanılabilecek hale gelmiş olur.
Aşağıdaki örnek kod parçası, JsonConvert.DeserializeObject metodunun kullanımını göstermektedir:
string json = "{ 'name':'John', 'age':30, 'city':'New York' }"; var person = JsonConvert.DeserializeObject<Person>(json); Console.WriteLine(person.name); |
Burada, "Person" adında bir sınıf tanımlanarak, JSON verileri bu sınıf değişkenlerine atanmıştır. Daha sonra "person.name" şeklindeki kod ile ad özelliği elde edilmiştir.
JsonConvert.DeserializeObject metodunu kullanarak JSON verilerini C# kodunuzda rahatlıkla kullanabilirsiniz. Bu sayede, JSON verilerinin manipülasyonu ve analizi daha rahat hale gelecektir.
JSON Verilerinde Sorgulama
JSON verilerini işlemede, sorgulama yapmak önemli bir adımdır. LINQ kullanarak, JSON verilerinde sorgulama yapmak mümkündür. Bu sayede, belirli özelliklere göre veriler filtrelenerek daha anlaşılır hale getirilebilir.
Örneğin; bir JSON veri setinde, belirli bir ürün kategorisine ait ürünleri filtrelemek istiyorsunuz. LINQ ile bu filtreleme işlemini yapmak oldukça kolaydır. Öncelikle JSON verilerinizi LINQ sorgusu için IEnumerable tipinde bir değişkene atayın. Daha sonra, IEnumerable değişkenini kullanarak ürünleri filtreleyin.
Kodu | Açıklama |
---|---|
var urunler = JObject.Parse(jsonString) | JSON verilerini okuyun |
var filtre = from u in urunler["urunler"] where u["kategori"]=="telefon" select u; | Ürünleri kategorilerine göre filtreleyin |
Bu şekilde LINQ sorgusu kullanarak, JSON verilerinde belirli özelliklere göre filtreleme yapabilirsiniz. LINQ sorgusu ile birlikte kullanabileceğiniz diğer bir araç da Lambda ifadeleridir. Lambda ifadeleri, LINQ sorgularını daha anlaşılır ve okunaklı hale getirir.
Bir diğer kullanılabilecek araç ise GroupBy fonksiyonudur. Bu fonksiyon sayesinde, JSON verilerinde belirli bir özelliğe göre gruplama yapabilirsiniz. Bu gruplama işlemi, verilerin daha kolay analiz edilmesini sağlar.
Örnek Bir Sorgulama
"Örnek Bir Sorgulama" başlığı altında, LINQ kullanarak JSON verilerinden belirli bilgilerin nasıl alınacağını anlatan bir örnek verilebilir. Bu örnek kod parçası, JSON dosyasındaki belirli özelliklere göre bir filtreleme işlemi yapmanızı sağlar.
Aşağıdaki örnek kod parçası, JSON dosyasındaki "Name" ve "Age" özelliklerini seçer ve sıralar:
JSON Kodu | C# Kodu |
---|---|
{ "people": [ { "Name": "John", "Age": 24, "Occupation": "Developer" }, { "Name": "Jane", "Age": 32, "Occupation": "Designer" }, { "Name": "Mike", "Age": 28, "Occupation": "Engineer" } ] } | var json = File.ReadAllText("people.json"); var jObject = JObject.Parse(json); var people = jObject["people"].ToList(); var filteredList = from p in people select new { Name = (string)p["Name"], Age = (int)p["Age"] }; var sortedList = filteredList.OrderBy(p => p.Age); |
- İlk olarak, JSON dosyası okunur.
- Ardından, Jobject.Parse() metodu kullanılarak JSON nesnesi oluşturulur.
- Daha sonra, LINQ sorgusu kullanılarak veriler seçilir ve "filteredList" listesine atanır.
- En son olarak, "Age" özelliğine göre sıralama yapılır ve "sortedList" listesine attırılır.
Bu örnek kod parçası gibi, farklı LINQ sorguları kullanarak JSON verilerinden farklı özellikler alabilirsiniz. Bu özelliklerin filtrelenmesi ve sıralanması, JSON dosyalarının daha kolay anlaşılmasını ve analiz edilmesini sağlar.
JSON Verilerinde Güncelleme
JSON verileri, LINQ ile değiştirme işlemleri kullanılarak güncellenebilir. Değiştirme, sadece belirli verilerin güncellenmesine izin verir. LINQ ile birlikte kullanılan örnek C# kodu, belirli özelliklere sahip JSON verilerinin güncellenmesini sağlar.
Güncellenen JSON verileri, birden fazla şekilde işlenebilir. JSON verilerinden birine ait özelliğin değeri değiştirilerek, yeni bir JSON dosyası oluşturulabilir. Ayrıca, yeni bir JSON dosyası oluşturulmadan, JSON verileri doğrudan değiştirilebilir. JSON verilerinin güncellenmesi, veri işlemede oldukça önemli bir adımdır.
LINQ ile JSON verilerini güncellemek için öncelikle, belirli özelliklerin filtrelenmesi gerekir. Daha sonra bu özelliklerin değerleri üzerinde değiştirme işlemleri yapılır. Böylece, belirli özelliğe sahip JSON verisinin bilgileri doğru şekilde güncellenir.
Örnek bir güncelleme işlemi ile JSON dosyalarındaki veriler güncellenebilir. Bu örnekte, LINQ ile birlikte yapılan C# kodu, JSON verilerinde belirli bir özelliğin güncellenmesini sağlar. Örneğin, JSON dosyalardaki fiyatları güncelleyebilirsiniz. Böylece, veriler daha anlamlı ve doğru bir şekilde saklanır.
Örnek Bir Güncelleme İşlemi
Belirli bir JSON verisindeki özellikleri güncellemek için bir örnek C# kodu kullanılabilir. Bu sayede LINQ kullanarak veriyi güncelleyebilirsiniz. Aşağıdaki örnek gösterimde, JSON verisindeki bir özelliği değiştirmek için bir C# kodu kullanılır. Burada, JObject sınıfını kullanarak JSON dosyasına erişilir ve JSON öğesinde değişiklik yapılır. Bu kod, hem basit hem de anlaşılır bir şekildedir.JObject json = JObject.Parse(@"{'name':'John Smith','age':25}");json["age"] = 30;string output = json.ToString();Console.WriteLine(output);
Yukarıdaki kodu çalıştırmak, çıktı olarak {"name":"John Smith","age":30} verisini döndürecektir. Bu, JSON verisinin 'age' özelliğinin 30 değeri ile güncellendiği anlamına gelmektedir. Bu örnekte olduğu gibi, LINQ kullanarak JSON verilerini güncellemek oldukça kolaydır. Bu sayede, JSON verilerinin içindeki herhangi bir özelliği kolayca güncelleyebilirsiniz.JSON Verilerinde Silme
JSON verilerinin işlenmesinde LINQ kullanmak, verilerin silinmesini de kolaylaştırır. JSON verilerinde bulunan istenmeyen bilgiler veya belirli sorgu sonuçlarına göre belirli veriler silinebilir.
Öncelikle, silinecek verilerin hangi özelliklere göre seçileceği belirlenir. Daha sonra, bu özellikleri kullanarak LINQ sorguları yazılır ve veriler silinir.
Aşağıdaki örnekte, JSON verilerinde belirli bir özelliğe sahip verilerin nasıl silineceği gösterilmiştir.
```C#// JSON verisi tanımlandıstring json = @"{ 'ürünler': [ { 'ürünAdı': 'Telefon', 'ürünFiyatı': 1000, 'stock': 10 }, { 'ürünAdı': 'Laptop', 'ürünFiyatı': 2000, 'stock': 5 }, { 'ürünAdı': 'Tablet', 'ürünFiyatı': 800, 'stock': 20 } ]}";
// JSON verisi C# nesnesine dönüştürüldüJObject jObject = JObject.Parse(json);
// 'stock' özelliği 10'dan küçük olan veriler silindijObject["ürünler"] = new JArray(jObject["ürünler"].Where(x => (int)x["stock"] >= 10));
// Yeni JSON verisi yazdırıldıConsole.WriteLine(jObject.ToString());```
Yukarıdaki örnekte, JArray sınıfı kullanılarak JSON verisindeki 'ürünler' öğesi seçildi ve LINQ sorgusu kullanılarak 'stock' özelliği 10'dan küçük olan veriler silindi. Daha sonra, yeni JSON verisi yazdırıldı.
JSON verilerinde sorgu yapmak ve belirli verileri silmek oldukça kolaydır. LINQ kullanarak, istenmeyen verileri hızlı bir şekilde kaldırabilir ve daha temiz, daha kullanışlı bir veri kümesi oluşturabilirsiniz.
Örnek Bir Silme İşlemi
JSON verilerinden istenmeyen öğeleri silmek için C# ile hazırlayacağınız örnek bir silme kodu sayesinde, LINQ kullanarak istediğiniz verilere ulaşabilmeniz mümkün olur. Örneğin, aşağıdaki kodla JSON verilerinden belirli bir özelliği silmek mümkündür:
string json = @" [ { 'id': 1, 'name': 'John', 'age': 29 }, { 'id': 2, 'name': 'Jane', 'age': 25 }, { 'id': 3, 'name': 'Peter', 'age': 32 } ]"; var jsonArray = JArray.Parse(json);var result = jsonArray.Where(obj => obj["id"].Value() != 2).ToList();jsonArray = new JArray(result);
Bu kod sayesinde, JSON verilerinde id'si 2 olan veriyi silmek mümkündür. Böylece, LINQ kullanarak JSON verilerinden istenmeyen öğeleri silme işlemi kolayca gerçekleştirilebilir.