Asp.Net Web Api ile JSON sonuçlarını Camel Case şeklinde göstermek

1 Nis

Asp.Net Web Api uygulamalarında action metodlar tarafından JSON formatında sunulan nesneler, C# ile oluşturulan nesnelerin özellikleri şeklinde oluşturulurlar. Yani C# tarafında oluşturduğumuz bir Product tipi şu şekilde olsun.

public class Product
{
   public string Name { get; set; }
   public string Price { get; set; }
}

Bu tipe ait bir nesneyi veya nesne gurubunu Web Api ile dışarı sunmak için:

public class ProductController:ApiController
{
      public IEnumerable<Product> Get()
      {
         return new List<Product>
         {
         new Product{CategoryName = "Notebook", ListPrice = "1250 TL"},
         new Product{CategoryName = "Tablet", ListPrice = "850 TL"},
         new Product{CategoryName = "Monitor", ListPrice = "350 TL"}
         };
     }
}

Şeklinde bir Controller oluşturabiliriz. Bu şekilde uygulamamızın vereceği cevabı inceleyecek olursak:

Sonuç-1
Sonuç-1

Kategori isimleri CategoryName şeklinde, fiyarlar da ListPrice şeklinde büyük harfle başlatılmış şekilde görünmektedir. Çünkü bu serileştirme işlemi C# ile oluşturduğumuz Product tipinin property üyelerine göre yapılmıştır. Diğer bir deyişle sınıfta belirlediğimiz property isimleri nasıl yazılmış ise JSON property isismleri de aynı şekilde olşuturulmuştur.

Ancak Javascript tarafında gelenek olarak nesne isimleri küçük harfle başlayan ve CamelCasing yapısına uygun olarak kullanılmaktadır. Bu işlemi Newtonsoft.Json.Serialization kütüphanesi bizim yerimize gerçekleştirebilmektedir. Bunun için WebApiConfig dosyasında bir düzenleme yapmak gerekmektedir.

public static void Register(HttpConfiguration config)
{

var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();

jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();}

Tekrar çalıştırdığımızda sonuç:

Sonuç-2
Sonuç-2

2 Replies to “Asp.Net Web Api ile JSON sonuçlarını Camel Case şeklinde göstermek

  1. abi bilgi cok iyide. cok cok eski bilgi. senden biz direk webapi direk core kodlarinda sunu degistirdim su oldu bekliyoruz 😀

    Yine tesekkurederim.

    • Eksik derken neyi kastediyorsunuz anlamadım. Yorumunuz biraz daha açık olabilirse eksikliği anlayıp belki beraber tamamlayabiliriz.

Comments are closed.