Tag Archives: NSJSONSerialization

JSONKitからNSJSONSerializationに移行

0
Filed under iOS SDK, Objective-C
Tagged as , , , , ,

iOS 5から、NSJSONSerializationApple Reference)というJSONを扱う機能が追加されています。
iOS 5がリリースされたのが2011年の10月12日。
iPhone 4S、iPhone 5なら最初からiOS 5なので、Torques Inc.では、これからのバージョンアップでは、iOS 5以降をサポート対応OSのとしても良いかと考えます
json160

JSONKitからNSJSONSerializationへ

ということで、JSONKitを使って読み込んでいたコードを変更することにしました。(JSONKitはARCに非対応ですしね!)
思っていた以上に簡単で、本当に下記のようなコピペでうまく動作しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// with NSJSONSerialization
NSData*  data     = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError* error    = nil;
NSArray* jsonData = [NSJSONSerialization JSONObjectWithData:data
    options:0
    error:&error];
 
/*
// with JSONKit
JSONDecoder* jsonDecoder = [JSONDecoder decoder];
NSArray* jsonData    = [jsonDecoder
    objectWithUTF8String:(const unsigned char *)[jsonString UTF8String]
    length:[jsonString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]];
*/

上記コードで、NSArray* としている箇所は、NSDictionary* の可能性もあり、それは、jsonの内容によって決定します。
どちらの値で来るのか不明ならば、idで取得してコードで判定しましょう。

1
2
3
4
5
6
7
8
9
10
id jsonData = [NSJSONSerialization JSONObjectWithData:data
    options:0
    error:&error];
 
if( [jsonData respondsToSelector:@selector(objectForKey:)] ){
 // jsonData is NSDictionary*
}
else{
 // jsonData is NSArray*
}

しかし、iOS/iPhoneユーザーはOSアップデート率が高いから、本当に新機能を使いやすいですよね!
(An某roidとは大違い)


[AD]

↓最強のお勧めスタイラス Su-Pen(スーペン)!

↓買ってみたら、本当に良書!初心者から経験者までお勧め!

iPhone/iPad/iPod touchプログラミングバイブル―iOS 5/Xcode 4対応 (smart phone programming bible)

著者/訳者:布留川 英一

出版社:ソシム( 2011-11 )

定価:

単行本 ( 527 ページ )

ISBN-10 : 4883377954

ISBN-13 : 9784883377954