instance method
BigDecimal#as_json
(*untyped) -> ::Hash[::String, ::String]
as_json(*)
ext/json/lib/json/add/bigdecimal.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/ext/json/lib/json/add/bigdecimal.rb, line 35
def as_json(*)
{
JSON.create_id => self.class.name,
'b' => _dump.force_encoding(Encoding::UTF_8),
}
end
Methods BigDecimal#as_json and BigDecimal.json_create may be used to serialize and deserialize a BigDecimal object; see Marshal.
Method BigDecimal#as_json serializes self, returning a 2-element hash representing self:
Example
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"}
Method JSON.create deserializes such a hash, returning a BigDecimal object:
Example
BigDecimal.json_create(x) # => 0.2e1 BigDecimal.json_create(y) # => 0.2e1 BigDecimal.json_create(z) # => 0.2e1