JSON日の金曜日に行ってきたよ

ギークハウス新潟で開催されたJSON日の金曜日に参加してきました。
私は発表しておらず、聞くだけでしたが。その割には微妙にメモ書いてなかったりとか。
Ustreamの方には5人ほど視聴者がいたとかいないとか。


眠いので文章としてかなり怪しいかも!

@saisa6153 - RFC4627 Reading

JSONRFCを読む(読んだ)、という発表。
8進数と16進数の記述が駄目なことと、累乗のeは使用可能というのは知らなかった。
でもまあ、両方とも使う機会が微妙にあったりなかったりかなあと思いますけど。
まとめとして、一次情報は大事だね、とのことでした。

@Nkzn - Androidで使えるJSON-Javaライブラリ

JSONライブラリ4種を使ってみての特徴や使いどころについての発表。


4種の選定基準として

  • 依存ライブラリがほぼない
  • 使い方がわかりやすい
  • Androidに存在しないJavaAPIを使用していない

の上記3つを満たすライブラリとして

を使用した。


使いどころとして、org.json以外は好みで、

  • JSONIC
    • すぐ使いたい、速度は求めていない
  • google-gson
    • パースしかしない場合
  • JsonPullParser
    • ビルドサイズを大きくしたくないとき

というときに使うと良い、が、Androidリバースエンジニアリング手法が確立されていて、Proguardで難読化する場合はJsonPullParser以外は基本的にアウトなので「みんなJPP使おうぜ」とのこと。


スライド:Androidで使えるJSON-Javaライブラリ

@dictav - Objective-CにおけるJSON事情

iOSでのJSONライブラリについて。
iOSは自分がよくわかっていないので違うこと書いてる可能性大。


iOS5以前

  • JSON Framework
  • YAJL
  • PropertyList


iOS5以降

  • NSJSONSerialization


YAJL

  • 良い点
    • Cで書かれていて高速
    • ドキュメントがしっかりしている
  • 悪い点
    • YAJLが他のフレームワークに依存していて設定がめんどい
    • -all_loadが必要でファイルが肥大化する

NSJSONSerialization

  • 冗長


使い分けとして

  • iOS4もサポート対象に入れたい
    • YAJL
  • iOS5以降のみ
    • NSJSONSerialization

が良いのではないか、とか。

@mihyaeru21 - JSONを返してくるWeb APIの紹介

JSONを返してくるWeb APIPythonから実行する場合の方法など。
今回扱っていたのはYouTubeのData APIなのです。


最初にPythonでの簡単なJSONの扱い。

import json

json_str = #JSONな文字列
json_fp = #ファイルのポインタ

json_obj = json.loads(json_str)
# 検索結果1番目の動画のタイトル
print json_obj['feed']['entry'][0]['title']['$t']

# 検索結果1番目の動画の説明文
print json_obj['feed']['entry'][0]['content']['$t']


パースするのは何も考えなくて良いから楽だそうな。

@neko_gata_s - beyond JSON

JSONとそれ以外の類似技術の良いところ、使いどころについて。


JSONいい

  • プラットフォームを選ばない
  • 人間でも読める
  • テキストなのでテキストプロトコルに載せやすい


類似

  • BSON
    • Binary JSON
    • MongoDB内部で使われていたりする
  • MessagePack
    • vs. JSON
      • 人間が読めない
      • はまったときはJSONより苦しむ
    • シビアに処理速度とかトラフィックの削減が求められるところに良い
  • YAML
    • vs. JSON
      • コメントが書ける
      • データの交換には向かない
    • 設定ファイルとかはJSONよりYAMLの方がいいかも
    • relaxed JSON使える環境ならそっちの方が


まとめ

  • JSONいい
  • MessagePackもYAMLもいい
  • XMLだって適材適所なら良い
    • Attributeとかの表現とか
  • いろんなフォーマット知っておいて場合によって使い分けよう


まー、適材適所ですな。

@hayajo - VimJSON

VimScriptのオブジェクトとJSONが似ていたのでVimScriptからJSONを扱ってみたという内容(で、合ってるのかな?)
mattnさんのBig Sky :: 意外と知られていないvimのtips(vimでJSONを解釈してみる)も参考に。


VimからJSONを返すWebAPIをたたいて、それをVimに表示する実演が。
true/falseやnullがないので1/0や[]にしたそうな。


Enjoy Vim + JSON

@toby55kij - GroovyでJSON

GroovyからJSONを扱う発表。
Groovyに心奪われた人も多々居たようで。私は壁紙のGroovyたんに心奪われましたが。


Groovyの特徴

  • JSON文字列をDSLで構築
    • JsonBuilder
  • JSON文字列を読み込む
    • JsonSlurper

@John_7701- JSON

JSONに関して調べたことと、サーバのデータをJSON形式で返してHTMLのテーブルで表示するサンプルの実演。
資料:JSON - 無精・短気・傲慢

@eb___ - スマートフォン対応

http://sns.supporterslink.com/の中の人。
OpenPNE派生のMyNETSを使用。スマートフォン対応したいけれど……


どうするか?

  1. JSONフォーマットでやり取りするAPIを作成して、WebViewを使ってHTML+JSでページを作る
  2. スマートフォン用のテンプレートを作成してUA的なものを判定して切り替える


で、どうしよう


「だれか一緒にやりませんか?」

宅飲み

その後缶ビールなどを買ってきて宅飲み。
@neko_gata_sさんの特製鍋や特製油揚げが美味しかった!


あとトトロ観たりとか。


JSONの勉強会?という感じだったけど結構扱う言語がばらけていたりとか、バランスよい感じだったかなーと。
今度は発表する側になりたいなー。