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"}