FTU技術開発 〜 JSON
JSONは JavaScript Object Notation - Wikipedia によると...
JSON(ジェイソン、JavaScript Object Notation)は、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語である。
とある。ふむふむ。よくわかりませーん... 。・゚゚・(>_<;)・゚゚・。
よくよく調べてたらxmlのようなものらしい。という事は、webアクセスに対する出力結果としてやってくるわけですね。ふむふむ。
しかも、iOS用のjsonパーサのフレームワークが提供されているじゃないかー。SBJson for Objective-C ←ココ
しかも軽量という触れ込みも(本当かどうかは不明)。
これで行きましょう、ということで採用決定しました。
どうやら、
- オブジェクト
- 配列
の2つあるらしい。Foundation的に翻訳するなら、オブジェクトはNSDictionaryで、配列はNSArrayです。
では、これをどのように使うのか。
前回FTU技術開発 〜 GAE main.py - 335g memoのmain.pyを書き換えて説明します。Hello World文が以下ですね。
self.response.out.write("Hello World")
これを以下に置き換えてください。
data = {"name":"335g", "age":"20"} info = "{" info = info + "/"name/":" + "/"" + data.name + "/"" info = info + "," + "/"age/":" + "/"" + data.age + "/"" info = info + "}" self.response.out.write(info)
そして、://[ID].appspot.com/ にアクセスすると、JSON形式で結果が出力されていると思います。
これは1つのオブジェクトでkeyがnameとageです。
以下まとめると、
{key:value}
配列 (value1, value2, value3)
[value1, value2, value3]
のような形式をJSON形式というそうです。ちなみに配列の中にオブジェクトを入れる事もできます。
非常にざっくりとしたJSON解説は以上です。
FTUにおいてJSONをどのように使うかというと、GAE内のデータを出力形式として使用という事です。
つまり処理の流れとしては
://test.appspot.com/ にアクセス
→ MainHandlerのgetメソッドを呼び出す
→ お望みのデータをJSON形式で出力する
といった流れです。
最後になりますが、JSON形式であるかどうかの確認用WEBアプリがあります。
JSONLint - The JSON Validator*2です。ちなみに私はOS X Lionの『Automator』にデスクトップでWebアプリを開ける機能がビルトインされました! | ライフハッカー[日本版]を参考に、アプリ化して使わせてもらってます。すっごく便利♪
今回出力方法をやったので、次回は取得方法...の前段階としてiOSのWEBアクセスライブラリ ASIHTTPRequest のご紹介です。