>> 古い記事: 雑メモ: 専門家の役割
<< 新しい記事: anbt-sql-formatter メモ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メモ: Ruby で JSON のパース/シリアライズ

1.9 では JSON を扱うライブラリが標準添付になっているらしいので、 以下は 1.8系に関するメモです。

YAML

パースだけなら YAML.load でも可。

require "yaml"

YAML.load( '{ "a": 1, "b": "x", "c": [2, 3, {"d": 4}] }' )
#=> {"a"=>1, "b"=>"x", "c"=>[2, 3, {"d"=>4}]}

参考: Rubyist Magazine - プログラマーのための YAML 入門 (初級編)

JSON implementation for Ruby

RubyForge: JSON implementation for Ruby
Documentation

gem install json で入るのはこれ。 C で書かれた拡張版と Ruby で書かれた pure 版の 2つを含む。

require "json" とした場合 json/ext.rb のロードに失敗したら json/pure.rb を読むようになっている が、明示的に pure を使いたいなら require "json/pure" でも良いかも。

json/pure.rb を使う場合:

require "json/pure"

JSON.parse( '[1,2,"あ"]' )  #=> パースしてオブジェクトへ
puts [1,"a","あ"].to_json #=> [1,"a","\u3042"]
puts JSON.pretty_generate( [1,"a","あ"] )
#=>
# [
#   1,
#   "a",
#   "\u3042"
# ]

Simple JSON parser & builder

日本語がそのまま読める形(\u~とならない)で変換できる。

RubyForge: サンプル詳細 - Simple JSON parser & builder
今回試したのは v1.09。

Ruby のバージョンは 1.8.7。

パスの通ったところにファイル名 simple-json-parser-builder.rb で保存 (ファイル名は例示のためのもので、こう決まっている訳ではないです)。

require "simple-json-parser-builder"

puts str = JsonBuilder.new.build(["あ"]) #=> ["あ"]
puts JsonParser.new.parse(str).to_s      #=> あ

ちなみに、 gem でインストールできる simple-json(SimpleJSON, http://rubyforge.org/projects/simple-json/) とは別物のようです。

そのまま使うと改行なしで 1行で出力されるが、 ソースをいじって "[", "]", "{", "}", "," の前後あたりに適当に改行を入れれば 簡易的に pretty print っぽくできる。

2012-03-25 追記 JsonBuilder.new.build(nil) #=> "[null]" となる点に注意。数や真偽値も同様。

ruby-json

JavaScript Object Notation | Get JavaScript Object Notation at SourceForge.net

参考: [Ruby] JSONのパーズとシリアライズ - うなの日記

yajl

brianmario's yajl-ruby at master - GitHub

調べてません。

参考(外部リンク)

当ブログ内の Ruby 関連記事

>> 古い記事: 雑メモ: 専門家の役割
<< 新しい記事: anbt-sql-formatter メモ
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。