2012/05/29

[iOS][Objective-C]JSONをパース

長年書き溜めたネタをいよいよ解禁するタイミングが来ました。

ずばりObjective-CでJSONをパースする方法なのだが、
JSON Frameworkを使ってjsonをiPhone(iOS)でパースする。

を確認すると、まずは、GitHubでプログラムのダウンロードが書かれているのだが、実は、FacebookSDKを使っている場合は、運のいいことに、デフォルトでもれなくSBJSONのプログラムもついてくるのです。

なので、後は、JSONの処理に集中すればいいのであるのだが、受け取ったJSONデータを下のように記述すればいいようである。

id jsonItem = [jsonData JSONValue];

via:[iPhone] JSON Framework の使い方(解析編)
と書いた場合、返ってくるのは、NSDictionaryかNSArrayなので、上のやり方でも問題ないのだが、下のように書いてもいけそうな気がする。
if([jsonData isKindOfClass:[NSDictionary class]]){
 NSDictionary *jsonItem = [jsonData JSONValue];
}else if([jsonData isKindOfClass:[NSArray class]]){
 NSArray *jsonItem = [jsonData JSONValue];
}
ちなみに、jsonDataはNSStringであります。

後は、NSDictionaryまたは、NSArrayに対してkeyを使ってvalueを引っ張ってくればおk

しかし、なんで、Objective-Cは、デォルトでJSONをパースする機能を用意してくれていないのだろうか?

歴史を紐解くと1980年代に生まれた言語なので、ないっちゃないのかもしれない。
が、バージョンアップという形で対応はしてほしいなと。

0 コメント:

コメントを投稿