様々な言葉でJSONを弄ってみるメモ
この記事は賞味期限切れです。(更新から1年が経過しています)
引き続きJSONのお話ですが、
連携に向いているフォーマットだ、という事はつまり
他の言語でを扱う方法を知っておかねばならないという事。
という訳で、軽くメモっておきます。
次のようなJSONフォーマットの文字列が
「str」に格納されていると想定します。
{
"status" : "success",
"content" : [
{ "id" : 1 , "message" : "Nice to meet you, world !" },
{ "id" : 2 , "message" : "Hello, world !" },
{ "id" : 3 , "message" : "Hello again, world !" }
]
}
この文字列をオブジェクトとしてロードし、
それをもう一度JSON文字列として出力するテストです。
PHP
$php_obj = json_decode( $str ); // JSONからPHPオブジェクトを生成
$json_string = json_encode( $php_obj ); // PHPオブジェクトからJSONを生成
さすが関数から生まれてきたような言語のPHP。
JSONだって関数一発です。
Ruby
Rubyは1.9からjsonライブラリが標準搭載されているそうです。
当方の環境も1.9だったのでそのままそれを利用させて頂きます。
require "json" # jsonライブラリが必要
ruby_obj = JSON.load( str ) # JSONからRubyオブジェクトを生成
json_string = JSON.generate( ruby_obj ) # RubyオブジェクトからJSONを生成
1.9未満だと他のライブラリに依存する事になります。
面倒なので(!?)ここでは割愛。
ActionScript3
AS3はJSONのパーサが標準装備されていないので、
as3corelibを使わせていただきます。
mikechambers’s as3corelib at master – GitHub
import com.adobe.serialization.json.JSON; // as3corelibからインポート
// 中略
var as3_obj:Object = JSON.decode( str ); // JSONからAS3オブジェクトを生成
var json_string:String = JSON.encode( as3_obj ); // AS3オブジェクトからJSONを生成
AS3というとXMLと相性も良いのでそちらをチョイスする事が多かったですが、
データ量によっては帯域節約の為にJSONを使うのも大いにありですね。その後も楽ですし。
XMLとかYAMLとか色々ありますが、JavaScriptの隆盛もあって
最近はJSONフォーマットがもてはやされている感じですね。
学習コストも極めて少なくて済むので、今後とも重宝されそうです。
コメント