JSON Nedir ?
JSON (JavaScript Object Notation) hafif bir veri değişim formatıdır.
- İnsanların veriyi okuması ve yazması kolaydır.
- Makinelerin ayrıştırması ve oluşturması kolaydır.
- JavaScript Programlama Dili, ECMA-262 alt kümesini temel alır.
- JSON, tamamen dilden bağımsız olarak veri taşıma formatıdır.
- C ++, C #, Java, JavaScript, Perl, Python gibi bütün dillerde kullanılır.
- Bu özellikler JSON’u ideal bir veri değişimi dili yapar.
Aşağıda örnek bir JSON veri yapısı bulunmaktadır.
1 2 3 4 5 | "employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ] |
C# ile JSON Kullanımı
C# programlama dilinde, JSON kullanımı oldukça yaygındır ve genellikle web servisleri ile iletişim kurmak için kullanılır. JSON, verileri kolayca okunabilir ve anlaşılabilir bir formatta temsil eder.
JSON verilerini C# programında kullanmak için, öncelikle Newtonsoft.Json paketinin projenize eklenmesi gerekmektedir. Asp.Net Core’da default olarak SDK nin içinde geliyor. Eğer projenizde yok ise Nuget üzerinden indirebilirsiniz. Bu paket, JSON verilerini C# nesnelerine dönüştürmek için kullanılır.
JSON verilerini C# nesnelerine dönüştürmek için, JsonConvert sınıfının DeserializeObject() metodunu kullanabilirsiniz. Bu metod, bir JSON veri dizisini C# nesnesine dönüştürür. Aşağıdaki örnek, bir JSON veri dizisini C# nesnesine dönüştürmektedir:
Öncelikle C# tarafındaki Member adlı sınıfı oluşturuyorum.
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace DependencyInjection.Domain { public class Member { public string Name { get; set; } public string LastName { get; set; } } } |
C# ta kullanabilmek için öncelikle Newtonsoft.Json namespace’nin projenizde ekli olması gerekiyor. Şuan versiyon olarak 12.0.2 mevcut ama kendini sürekli geliştiren bir kütüphanedir. Newtonsoft hakkında detaylı bilgiye buradan erişebilirsiniz.
Örnekte Member tipinden oluşan listeyi JSON dizisine çevirelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using System.Collections.Generic; using System.Linq; using DependencyInjection.Domain; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace DependencyInjection.Controllers { [Route("api/[controller]")] [ApiController] public class OrnekJsonController : ControllerBase { // GET api/values [HttpGet] public ActionResult<string> Get() { List<Member> liste = new List<Member> { new Member { Name= "John", LastName= "Doe" }, new Member { Name = "Anna", LastName = "Smith" }, new Member { Name = "Peter", LastName = "Jones" } }; string json = JsonConvert.SerializeObject(liste); return json; } } } |
Get methoduna istek attığımızda JSON dizisine verilerimizin değiştiğini göreceğiz.
C# ile JSON Verilerini Okumak
Öncelikle JSON formatındaki bir string veriyi Member tipinden oluşan bir listeye çevirelim. Kodlar aşağıdaki gibidir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System.Collections.Generic; using System.Linq; using DependencyInjection.Domain; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace DependencyInjection.Controllers { [Route("api/[controller]")] [ApiController] public class OrnekJsonController : ControllerBase { // GET api/values [HttpGet("GetOlustur")] public ActionResult<IEnumerable<Member>> GetOlustur() { string json = @"[{""Name"":""John"",""LastName"":""Doe""},{""Name"":""Anna"",""LastName"":""Smith""},{""Name"":""Peter"",""LastName"":""Jones""}]" var liste = (List<Member>)JsonConvert.DeserializeObject(json, typeof(List<Member>)); return liste.ToList(); } } } |
Örnek metoda istek attığımızda çıktımız aşağıdaki gibidir.
Umarım faydalı olmuştur.
Hiç yorum yok:
Yorum Gönder