class BigDecimal

Public Class Methods

Source
# File ext/json/lib/json/add/bigdecimal.rb, line 13defself.json_create(object)BigDecimal._loadobject['b']end

Seeas_json.

Public Instance Methods

Source
# File ext/json/lib/json/add/bigdecimal.rb, line 35defas_json(*)  {JSON.create_id=>self.class.name,'b'=>_dump.force_encoding(Encoding::UTF_8),  }end

MethodsBigDecimal#as_json andBigDecimal.json_create may be used to serialize and deserialize a BigDecimal object; seeMarshal.

MethodBigDecimal#as_json serializesself, returning a 2-element hash representingself:

require'json/add/bigdecimal'x =BigDecimal(2).as_json# => {"json_class"=>"BigDecimal", "b"=>"27:0.2e1"}y =BigDecimal(2.0,4).as_json# => {"json_class"=>"BigDecimal", "b"=>"36:0.2e1"}z =BigDecimal(Complex(2,0)).as_json# => {"json_class"=>"BigDecimal", "b"=>"27:0.2e1"}

MethodJSON.create deserializes such a hash, returning a BigDecimal object:

BigDecimal.json_create(x)# => 0.2e1BigDecimal.json_create(y)# => 0.2e1BigDecimal.json_create(z)# => 0.2e1
Source
# File ext/json/lib/json/add/bigdecimal.rb, line 55defto_json(*args)as_json.to_json(*args)end

Returns aJSON string representingself:

require'json/add/bigdecimal'putsBigDecimal(2).to_jsonputsBigDecimal(2.0,4).to_jsonputsBigDecimal(Complex(2,0)).to_json

Output:

{"json_class":"BigDecimal","b":"27:0.2e1"}{"json_class":"BigDecimal","b":"36:0.2e1"}{"json_class":"BigDecimal","b":"27:0.2e1"}