类 Range

公共类方法

json_create(object) 点击切换源代码

参见 as_json.

# File json/lib/json/add/range.rb, line 9
def self.json_create(object)
  new(*object['a'])
end

公共实例方法

as_json(*) 点击切换源代码

方法 Range#as_jsonRange.json_create 可用于序列化和反序列化 Range 对象;参见 Marshal。

方法 Range#as_json 序列化 self,返回一个表示 self 的 2 元素哈希。

require 'json/add/range'
x = (1..4).as_json     # => {"json_class"=>"Range", "a"=>[1, 4, false]}
y = (1...4).as_json    # => {"json_class"=>"Range", "a"=>[1, 4, true]}
z = ('a'..'d').as_json # => {"json_class"=>"Range", "a"=>["a", "d", false]}

方法 JSON.create 反序列化这样的哈希,返回一个 Range 对象。

Range.json_create(x) # => 1..4
Range.json_create(y) # => 1...4
Range.json_create(z) # => "a".."d"
# File json/lib/json/add/range.rb, line 31
def as_json(*)
  {
    JSON.create_id  => self.class.name,
    'a'             => [ first, last, exclude_end? ]
  }
end
to_json(*args) 点击切换源代码

返回一个表示 selfJSON 字符串。

require 'json/add/range'
puts (1..4).to_json
puts (1...4).to_json
puts ('a'..'d').to_json

输出

{"json_class":"Range","a":[1,4,false]}
{"json_class":"Range","a":[1,4,true]}
{"json_class":"Range","a":["a","d",false]}
# File json/lib/json/add/range.rb, line 51
def to_json(*args)
  as_json.to_json(*args)
end