Modern yazılım geliştirme süreçlerinde uygulamalar arası veri aktarımı oldukça kritik bir rol oynar. Özellikle web servisleri, API entegrasyonları ve uygulama konfigürasyonları söz konusu olduğunda JSON veri formatı en çok kullanılan çözümlerden biridir. Hafif yapısı, okunabilirliği ve platform bağımsız olması sayesinde JSON günümüzde neredeyse tüm programlama dilleri tarafından desteklenmektedir.

C# ile JSON dosyası okuma ve yazma işlemleri ise .NET geliştiricileri için oldukça yaygın bir ihtiyaçtır. Bir uygulamanın ayarlarını saklamak, API'den gelen verileri işlemek veya dosya tabanlı veri yönetimi yapmak gibi birçok senaryoda JSON kullanılır. Özellikle config dosyaları, log verileri veya veri dışa aktarma işlemleri için JSON oldukça idealdir.

Bu kapsamlı rehberde C# kullanarak JSON dosyalarını nasıl okuyabileceğinizi, nasıl düzenleyebileceğinizi ve nasıl yeni veriler yazabileceğinizi detaylı şekilde inceleyeceğiz. Ayrıca Newtonsoft.Json ve System.Text.Json gibi popüler kütüphaneleri, pratik kod örneklerini ve gerçek kullanım senaryolarını da ele alacağız.

JSON Nedir?

JSON (JavaScript Object Notation), veri alışverişi için kullanılan hafif ve metin tabanlı bir veri formatıdır. İnsan tarafından kolay okunabilir ve makineler tarafından kolay işlenebilir olması nedeniyle API'ler, web servisleri ve uygulama yapılandırmaları için yaygın şekilde kullanılır.

JSON temel olarak anahtar-değer (key-value) yapısına dayanır. Bu yapı sayesinde veriler organize bir şekilde saklanabilir ve farklı sistemler arasında kolayca paylaşılabilir.

JSON Formatının Temel Özellikleri

  • Metin tabanlı veri formatıdır
  • Platform bağımsızdır
  • Okunması ve yazılması kolaydır
  • API iletişimlerinde standart olarak kullanılır
  • Hafif ve hızlıdır

Basit JSON Örneği

{ "name": "Ahmet", "age": 15, "city": "İstanbul" }

Bu yapı bir nesneyi temsil eder ve üç farklı veri alanı içerir.

C# ile JSON Neden Kullanılır?

.NET ekosisteminde JSON kullanımı oldukça yaygındır. Özellikle web API geliştirme, konfigürasyon yönetimi ve veri depolama işlemlerinde JSON tercih edilir.

C# projelerinde JSON kullanmanın temel nedenleri şunlardır:

  • API verilerini işlemek
  • Uygulama ayarlarını saklamak
  • Veri transferi yapmak
  • Log kayıtlarını tutmak
  • Harici sistemlerle entegrasyon sağlamak

JSON Kullanım Avantajları

Avantaj Açıklama
Hafif Veri Yapısı XML'e göre daha az veri boyutu
Kolay Okunabilirlik İnsan tarafından anlaşılması kolaydır
Platform Bağımsız Tüm programlama dilleri destekler
API Uyumluluğu REST API'lerde standarttır

JSON Dosyası Yapısı ve Örnekleri

Bir JSON dosyası genellikle uygulama ayarlarını veya veri kayıtlarını içerir. Örneğin bir uygulama konfigürasyon dosyası aşağıdaki gibi olabilir.

{ "School": { "Class": "5", "Section": "A" }, "Student": "Ahmet" }

Bu JSON dosyasında iki farklı veri alanı bulunmaktadır:

  • School nesnesi
  • Student değeri

JSON Veri Türleri

  • String
  • Number
  • Boolean
  • Array
  • Object
  • Null

C# ile JSON Dosyası Okuma

C# JSON dosyası okuma işlemi genellikle bir JSON dosyasını okuyup içindeki verileri uygulama içinde kullanmak için yapılır. Bu işlem özellikle konfigürasyon verilerini almak için oldukça yaygındır.

JSON dosyası okumak için çoğunlukla Newtonsoft.Json kütüphanesi tercih edilir.

JSON İşlemleri İçin Sınıf Oluşturma

using Newtonsoft.Json; using System; using System.IO; namespace Test { public class JSONOperation { private static readonly string _filePath = Path.Combine(AppContext.BaseDirectory, "appsettings.json"); public static string Get(string key) { try { string json = File.ReadAllText(_filePath); dynamic jsonObj = JsonConvert.DeserializeObject(json); var sectionPath = key.Split(":")[0]; if (!string.IsNullOrEmpty(sectionPath)) { var keyPath = key.Split(":")[1]; return (string)jsonObj[sectionPath][keyPath]; } else { return (string)jsonObj[sectionPath]; } } catch { return ""; } } public static void Set(string key, string value) { try { string json = File.ReadAllText(_filePath); dynamic jsonObj = JsonConvert.DeserializeObject(json); var sectionPath = key.Split(":")[0]; if (!string.IsNullOrEmpty(sectionPath)) { var keyPath = key.Split(":")[1]; jsonObj[sectionPath][keyPath] = value; } else { jsonObj[sectionPath] = value; } string output = JsonConvert.SerializeObject(jsonObj, Formatting.Indented); File.WriteAllText(_filePath, output); } catch { } } } }

JSON Dosyasından Veri Okuma

Aşağıdaki kod ile JSON dosyasındaki verileri okuyabilirsiniz.

string classValue = JSONOperation.Get("School:Class"); string studentValue = JSONOperation.Get("Student");

Bu kod sayesinde JSON içindeki ilgili anahtar değerleri kolayca elde edebilirsiniz.

C# ile JSON Dosyasına Veri Yazma

C# JSON yazma işlemi, mevcut JSON verisini güncellemek veya yeni veri eklemek için kullanılır.

Örneğin JSON içindeki bir değeri değiştirmek için aşağıdaki kod kullanılabilir.

JSONOperation.Set("School:Class", "6");

Bu işlem JSON dosyasındaki Class değerini günceller.

JSON Yazma İşleminin Çalışma Mantığı

  1. JSON dosyası okunur
  2. Veri nesneye dönüştürülür
  3. İlgili alan güncellenir
  4. JSON tekrar dosyaya yazılır

Newtonsoft.Json Kullanımı

Newtonsoft.Json .NET dünyasında en çok kullanılan JSON kütüphanelerinden biridir. JSON verilerini serialize ve deserialize etmek için güçlü özellikler sunar.

Kurulum

Install-Package Newtonsoft.Json

Serialize Örneği

var student = new { Name = "Ahmet", Age = 15 }; string json = JsonConvert.SerializeObject(student);

Deserialize Örneği

var obj = JsonConvert.DeserializeObject(json);

System.Text.Json Kullanımı

.NET Core ile birlikte gelen System.Text.Json kütüphanesi, JSON işlemleri için yerleşik bir çözümdür ve performans açısından oldukça hızlıdır.

JSON Serialize

string json = JsonSerializer.Serialize(student);

JSON Deserialize

var student = JsonSerializer.Deserialize<Student>(json);

JSON Dosyası Yönetim İpuçları

JSON ile çalışırken bazı önemli noktalara dikkat etmek gerekir. Bu hem performansı hem de veri güvenliğini artırır.

  • Dosya okuma işlemlerinde hata yönetimi kullanılmalıdır
  • JSON yapısı her zaman doğrulanmalıdır
  • Büyük JSON dosyaları için streaming tercih edilmelidir
  • Dosya erişim izinleri kontrol edilmelidir
  • JSON verileri mümkün olduğunca sınıflara map edilmelidir

Gerçek Hayatta JSON Kullanım Senaryoları

JSON sadece küçük veri dosyaları için değil aynı zamanda büyük ölçekli uygulamalar için de kullanılır.

En Yaygın Kullanım Alanları

  • API veri transferi
  • Konfigürasyon dosyaları
  • Log kayıtları
  • Mobil uygulama veri alışverişi
  • Mikroservis iletişimi

JSON Kullanılan Popüler Sistemler

Sistem Kullanım Amacı
REST API Veri iletişimi
Web Uygulamaları Frontend veri transferi
Mobil Uygulamalar Sunucu veri alışverişi
Konfigürasyon Uygulama ayarları

Sıkça Sorulan Sorular

C# JSON dosyası nasıl okunur?

C# ile JSON dosyası okumak için genellikle Newtonsoft.Json veya System.Text.Json kütüphanesi kullanılır. JSON dosyası File.ReadAllText ile okunur ve ardından deserialize edilerek nesneye dönüştürülür.

Newtonsoft.Json mı System.Text.Json mı kullanılmalı?

System.Text.Json performans açısından daha hızlıdır ancak Newtonsoft.Json daha esnek ve özellik açısından daha zengindir. Karmaşık JSON işlemlerinde çoğu geliştirici Newtonsoft.Json tercih eder.

JSON dosyasına veri nasıl yazılır?

JSON dosyasına veri yazmak için önce mevcut JSON okunur, ilgili alan güncellenir ve ardından serialize edilerek tekrar dosyaya yazılır.

C# JSON deserialize nedir?

Deserialize işlemi JSON formatındaki verinin C# nesnesine dönüştürülmesi işlemidir. Bu sayede JSON verileri program içinde nesne olarak kullanılabilir.

JSON dosyaları nerelerde kullanılır?

JSON dosyaları API veri transferi, uygulama konfigürasyonları, veri saklama ve sistemler arası veri iletişimi için yaygın olarak kullanılır.