Chihiro Ito氏によって書かれたsimple-json.rb
を
ライブラリの形式にして、 APIを変更・拡張し、pretty unparseの機能を追加したもの。
AnJSON::Parser
AnJSON::Builder
AnJSON::PrettyBuilder
AnJSON.parse(str, opts = {})
AnJSON.load(str, opts = {})
AnJSON.build(ruby_obj, opts = {})
AnJSON.dump(ruby_obj, opts = {})
AnJSON.unparse(ruby_obj, opts = {})
AnJSON.pretty_build(ruby_obj, opts = {})
AnJSON.pretty_dump(ruby_obj, opts = {})
AnJSON.pretty_unparse(ruby_obj, opts = {})
simple-json.rb
と同じく、パブリックドメインです。再配布や改変などに制限はありません。
同梱のsetup.rb
を実行してください。(適切な位置にlib/anjson.rb
がコピーされます)
% ruby setup.rb
AnJSON
モジュールに全てのコードを含めています。
それに伴い、JsonParser
はAnJSON::Parser
に、JsonBuilder
はAnJSON::Builder
に、名前と階層を変更しています。
class JsonParser
class JsonBuilder
module AnJSON
class Parser
class Builder
class PrettyBuilder
AnJson = AnJSON
AnJSON
のモジュールメソッドにより、Parser
やBuilder
を生成しなくてもJSON文字列のパース/生成が行えます。
require 'anjson'
AnJSON.parse(str)
AnJSON.build(ruby_obj)
AnJSON::PrettyBuilder
により、整形されたJSON文字列を出力することができます。
AnJSON::Parser
JSONパーサを表すクラス。仕様はオリジナルのJsonParser
と同じ。
require 'anjson'
parser = AnJSON::Parser.new
parser.parse('{"a": 1, "b": 2, "c": 3}') #=> {'a'=>1, 'b'=>2, 'c'=>3}
AnJSON::Builder
JSON生成器を表すクラス。仕様はオリジナルのJsonBuilder
と同じ。
require 'anjson'
builder = AnJSON::Builder.new
puts builder.build({'a' => 30, 'b' => 'String Instance', 'c' => [2, 5, 4], 'd' => nil})
{"a":30,"b":"String Instance","c":[2,5,4],"d":null}
AnJSON::PrettyBuilder
AnJSON::Builder
のサブクラス。オブジェクトをJSON形式の文字列に変換するとき、
改行とインデントで整形を行う。
オプションとしてindent
が追加されており、これを渡すことでインデントに使われる文字列を指定できる。
デフォルトは半角スペース2個。
require 'anjson' builder = AnJSON::PrettyBuilder.new({:indent => ' '}) puts builder.build({'a' => 30, 'b' => 'String Instance', 'c' => [2, 5, 4], 'd' => nil})
{ "a": 30, "b": "String Instance", "c": [ 2, 5, 4 ], "d": null }
AnJSON.parse(str, opts = {})
AnJSON.load(str, opts = {})
AnJSON::Parser
を用いてJSON形式の文字列str
を解析し、Rubyオブジェクトに変換して返す。
opts
はそのままAnJSON::Parser
に引き渡される。
AnJSON.build(ruby_obj, opts = {})
AnJSON.dump(ruby_obj, opts = {})
AnJSON.unparse(ruby_obj, opts = {})
AnJSON::Builder
を用いて、オブジェクトruby_obj
をJSON形式の文字列に変換して返す。
opts
はそのままAnJSON::Builder
に引き渡される。
AnJSON.pretty_build(ruby_obj, opts = {})
AnJSON.pretty_dump(ruby_obj, opts = {})
AnJSON.pretty_unparse(ruby_obj, opts = {})
AnJSON::PrettyBuilder
を用いて、オブジェクトruby_obj
をJSON形式の文字列に変換し、
改行とインデントで整形して返す。
opts
はそのままAnJSON::PrettyBuilder
に引き渡される。
AnJSON への要望、バグ報告、質問などがありましたら、こちらのフォームからお気軽にどうぞ。