Monthly Archives: 9月 2011

iOSアプリでJSONを読み込む! – SBJson

1
Filed under iOS SDK, iPhoneアプリ
Tagged as , , ,

Objective-C向けのJSONを扱うライブラリを探してみたのですが、JSONのページによるとJSON解析ライブラリはいくつかあるようです。

json-frameworkというのがトップに紹介されており、また、ライセンスも修正BSDライセンスですので、これを使ってみることにしました。
現在は、SBJsonという名前に変わっているようです。

GitHubから取得

適当な場所で次のようにコマンドをタイプします。

$ git clone git://github.com/stig/json-framework.git

これで json-framework/ というディレクトリが作成され、その中にライブラリソースやサンプルソースがダウンロードされます。
(ちなみに、Mac OS XでGit環境を整えた時のメモはこちら→「Gitを使ってみた « TORQUES LABS」
上記コマンドでダウンロードしてきた中にはサンプルコード”Examples”があるので、使い方の参考になります。

SBJsonを使ってみる

上記Examplesの中には2つのサンプルプロジェクトがありますが、参考になるのはTweetStreamというサンプル。NSURLRequestを使った非同期通信での使い方が分かります。
JSONの読込完了時に呼ばれるのは、- (void)parser:(SBJsonStreamParser*)parser foundObject:(NSDictionary*)dict というメソッドなので、受信後の処理はここに書けば良さそうです。
SBJsonを使うと、JSONオブジェクトは、NSDictionaryとNSArrayの組みわせになります。ルート部分が上記メソッドの引数 (NSDictionary*)dict となります。
試しにGoogleカレンダーのサンプルJSONで試してみました。
http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full?alt=json
このURLにアクセスして取得できるJSONの一部をコピペすると下記のような構造になっています。
(後述する操作説明のために、feedの下にtestValueという値を追加しています。)

{
  version: "1.0"
  encoding: "UTF-8"
  -
  feed: {
    testValue: 3
    id: {
      $t: http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full
    }
    -
    link: [
      -
      {
        rel: "alternate"
        type: "text/html"
        href: http://www.google.com/calendar/embed?src=developer-calendar@google.com
      }
      -
      {
        rel: http://schemas.google.com/g/2005#feed
        type: "application/atom+xml"
        href: http://www.google.com/calendar/feeds/developer-calendar%40google.com/public/full
      }
    ]
  }
}

この中の値を取得するコードを載せておきます。

“encoding”の値を出力してみる

ここは普通にNSDictionaryとしてアクセスできますので次のようなコードになります。

NSLog(@"%@", [dict objectForKey:@"encoding"]);

“feed”の下の”link”の値を出力してみる

ここは2階層目がNSArrayなので、次のようなコードでループを回すことが出来ます。

NSDictionary* feed     = [dict objectForKey:@"feed"];
NSArray*      links    = [feed objectForKey:@"link"];
NSEnumerator* enumLink = [links objectEnumerator];
NSDictionary* item;
while (item = (NSDictionary*)[enumLink nextObject]) {
  NSLog(@"%@", [item objectForKey:@"href"]);
}

Number値をintとして取得

NSDictionary* feed = [dict objectForKey:@"feed"];
int testValue      = [[feed objectForKey:@"testValue"] intValue];

SBJsonWriterでデバッグ出力

デバッグなどでJSONの中身をザックリと確認したい時にはSBJsonWriterというクラスが用意されているので、これを使って次のように簡単にデバッグ出力が可能です。

// debug.
SBJsonWriter*	writer = [[[SBJsonWriter alloc] init] autorelease];
writer.humanReadable   = YES;
writer.sortKeys        = YES; // キーをソート.
NSLog(@"%@", [writer stringWithObject:dict]);

参考サイト


[AD]
↓新モバイルブースター。iPadの充電に対応できているし、容量もアップ!充電速度もアップ!

SANYO USB出力付きリチウムイオンバッテリー (高容量リチウムイオン3.7V5400mAh電池使用) KBC-L54D

SANYO USB出力付きリチウムイオンバッテリー (高容量リチウムイオン3.7V5400mAh電池使用) KBC-L54D

Amazon価格:¥ 6,900

カテゴリ:Personal Computers

発売日:2011-09-08



↓これは!!!!SIMの抜き差しが多い人には超便利!

↓緊急時用のライトもこれなら普段から出しておける!

レゴライト:ランタン/足イエロー

レゴライト:ランタン/足イエロー

Amazon価格:¥ 8,800

カテゴリ:おもちゃ&ホビー



↓手をグルグル回して充電可能!

「スティーブ・ジョブズ 驚異のイノベーション」読了

0
Filed under
Tagged as , ,

先月読んだ同著者の「スティーブ・ジョブズ 驚異のプレゼン」を読んで刺激を受けたので、ついでに最近刊行された本書も読んでみることにしました。

スティーブ・ジョブズ 驚異のイノベーション―人生・仕事・世界を変える7つの法則

著者/訳者:カーマイン・ガロ

出版社:日経BP社( 2011-06-30 )

定価:¥ 1,890

Amazon価格:¥ 1,890

単行本 ( 392 ページ )

ISBN-10 : 4822248569

ISBN-13 : 9784822248567


今一歩

「驚異のプレゼン」は本当に良書だと思うのですが、本書は、残念ながらそこまで及ばず、という印象です。
「驚異のプレゼン」と同じ著者、同じ翻訳者なのですが、内容も、翻訳も若干クォリティが低い。
内容に関してはさておき、翻訳に関しては原文を読んだわけではないので一概に言えないのですが、中盤で、「あれ?」と思うような文章があると感じられました。
なかでも、122ページの見出しは明らかにおかしい。

「無理な締め切りを満足する」、おそらく、”Meet a deadline”、「締め切りを守る」のことかと思います。
一旦機械翻訳にかけて修正するスタイルをとっているのだろうか。前作「驚異のプレゼン」は全て役者が咀嚼しなおしているかの如く全く違和感のない日本語で非常に読みやすかっただけに残念でした。

内容も

肝心の内容ですが、前作「驚異のプレゼン」と内容がかぶる部分が多く、続けて読むと、あまり新鮮味を感じることが出来ませんでした。
本書は、ジョブズのやり方の特徴を7つの法則とし、それぞれ、Apple以外の会社で成功した事例を紹介する、というスタイルです。
正直、あまり面白くない。一番面白い事例がAppleだからしょうがないですね。

私のまとめ

まず、本書に書かれている7つの法則を列挙してみたいと思います。

  • 法則1「大好きなことをする」
  • 法則2「宇宙に衝撃を与える」
  • 法則3「頭に活を入れる」
  • 法則4「製品を売るな。夢を売れ。」
  • 法則5「1000ものことにノーと言う」
  • 法則6「めちゃくちゃすごい体験をつくる」
  • 法則7「メッセージの名人になる」

2と6、4と7、はそれぞれ一緒な内容かな、と思うのでまとめ、また、自分で分かりやすいようにキーワードを入れてみました。

  • 法則1「大好きなことをする」(情熱)
  • 法則2「めちゃくちゃすごい体験をつくる」(ビジョン)
  • 法則3「頭に活を入れる」(想像力)
  • 法則4「メッセージの名人になる」(ストーリー)
  • 法則5「1000ものことにノーと言う」(シンプル)

しかしまだ、本書で出てくる3点ルールまで減らしたいところ。
で、考えてみると次のようになりました。

  • 「情熱」
  • 「想像力」…ビジョン、ストーリー
  • 「技術力」…デザイン力、実現する力

割と納得できるカタチまで落とせたので、本書は読了として本棚に収めることします。

オススメは前作

結論として、この2作のうち読むべきは前作の「驚異のプレゼン」
「驚異のイノベーション」を読む時間があるなら「驚異のプレゼン」を2回読むことをお勧めします。

スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則

著者/訳者:カーマイン・ガロ

出版社:日経BP社( 2010-07-15 )

定価:¥ 1,890

Amazon価格:¥ 1,890

単行本(ソフトカバー) ( 408 ページ )

ISBN-10 : 482224816X

ISBN-13 : 9784822248161



[AD]

↓ジョブズ本ではこちらも良さそうなレビューですね。

スティーブ・ジョブズの流儀

著者/訳者:リーアンダー ケイニー

出版社:武田ランダムハウスジャパン( 2008-10-23 )

定価:¥ 1,890

Amazon価格:¥ 1,890

単行本 ( 336 ページ )

ISBN-10 : 4270004215

ISBN-13 : 9784270004210


↓そして、ジョブズ本の決定版、自伝的著作が11月に発売されます。

スティーブ・ジョブズ I

著者/訳者:ウォルター・アイザックソン

出版社:講談社( 2011-10-25 )

定価:¥ 1,995

Amazon価格:¥ 1,995

ハードカバー ( 448 ページ )

ISBN-10 : 4062171260

ISBN-13 : 9784062171267


↓忘れてはならないもう一人のスティーブ!

アップルを創った怪物―もうひとりの創業者、ウォズニアック自伝

著者/訳者:スティーブ・ウォズニアック

出版社:ダイヤモンド社( 2008-11-29 )

定価:¥ 2,100

Amazon価格:¥ 2,100

単行本 ( 453 ページ )

ISBN-10 : 447800479X

ISBN-13 : 9784478004791