Her ne kadar artık iOS SDK içerisinde JSON kütüphanelerinin sunulmasıyla JSON okumak için harici kütüphanelere ihtiyaç kalmasa da SBJSON bu konuda kullanılacak en iyi çalışmalardan birisidir. Özellikle akış (stream) desteği ve standart nesnelere getirdiği ek metodlar objeleri JSON'a çevirmeniz gerektiğinde size büyük kolaylıklar sağlayacaktır.
Projeyi çalıştırmak için yapmanız gereken siteden dosyaları indirdikten sonra src/main/objc klasörü içerisine girerek burada yer alan tüm dosyaları uygulamanıza eklemektir. Daha sonra Xcode içerisinden bu klasörü projeye ekleyerek SBJSON'ı kullanabilirsiniz.
SBJSON'ın projeye eklenmesi
Dosyaları projenize koyduktan sonra kütüphaneyi kullanmak istediğiniz dosyada #import “SBJson.h” satırını eklemeniz yeterlidir.
JSON formatında bir metin değerini objeye dönüştürmek için SBJsonParser sınıfından faydalanırız. SBJsonParser içerisinde bulunan objectWithString: metodu herhangi bir kaynaktan gelen NSString sınıfındaki JSON metnini objeye dönüştürmeye yardımcı olur. Aşağıdaki örnekte anahtar - değer ikilisi şeklinde bir JSON metninin objeye dönüştürülmesini görüyoruz.
NSString *jsonString = @"{\"key\":\"value\"}\""; SBJsonParser *parser = [SBJsonParser new]; id jsonObject = [parser objectWithString:jsonString]; NSLog(@"%@",jsonObject);
Yukarıdaki kod çalıştırıldığında jsonObject değeri bir NSDictionary olarak görüntülenecektir. Eğer verilen JSON bir dizi içerseydi objectWithString: metodu bize NSArray sınıfında bir değişken döndürürdü. Aşağıda kodun çıktısını konsolda görüntülüyoruz.
2013-11-05 22:11:24.677 SBJson { key = value; }
NSDictionary ya da NSArray tipinde bir objeyi JSON formatına çevirmek içinse SBJsonWriter sınıfından faydalanırız. Aşağıdaki örnekte NSDictionary tipinde bir değişken JSON formatına çevrilmektedir.
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"]; SBJsonWriter *writer = [SBJsonWriter new]; id jsonStringForDictionary = [writer stringWithObject:dict]; NSLog(@"%@",jsonStringForDictionary);
stringWithObject: metodu elde ettiği objeyi bir JSON metnine dönüştürecektir. Yukarıda tanımlanan NSDictionary için aşağıdaki konsol çıktısını elde ederiz.
2013-11-05 22:11:24.678 SBJson[7228:70b] {"key":"value"}
Projenin adresi: https://github.com/stig/json-framework