diff --git a/lib/json/add/bigdecimal.rb b/lib/json/add/bigdecimal.rb
index 25383f28..3d0d99d6 100644
--- a/lib/json/add/bigdecimal.rb
+++ b/lib/json/add/bigdecimal.rb
@@ -8,16 +8,30 @@
end
class BigDecimal
- # Import a JSON Marshalled object.
- #
- # method used for JSON marshalling support.
+
+ # See #as_json.
def self.json_create(object)
BigDecimal._load object['b']
end
- # Marshal the object to JSON.
+ # Methods BigDecimal#as_json and +BigDecimal.json_create+ may be used
+ # to serialize and deserialize a \BigDecimal object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method BigDecimal#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # 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:
+ #
+ # BigDecimal.json_create(x) # => 0.2e1
+ # BigDecimal.json_create(y) # => 0.2e1
+ # BigDecimal.json_create(z) # => 0.2e1
#
- # method used for JSON marshalling support.
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -25,7 +39,19 @@ def as_json(*)
}
end
- # return the JSON value
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/bigdecimal'
+ # puts BigDecimal(2).to_json
+ # puts BigDecimal(2.0, 4).to_json
+ # puts BigDecimal(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"}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/complex.rb b/lib/json/add/complex.rb
index e63e29fd..e3b8e768 100644
--- a/lib/json/add/complex.rb
+++ b/lib/json/add/complex.rb
@@ -5,14 +5,27 @@
class Complex
- # Deserializes JSON string by converting Real value r, imaginary
- # value i, to a Complex object.
+ # See #as_json.
def self.json_create(object)
Complex(object['r'], object['i'])
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Complex#as_json and +Complex.json_create+ may be used
+ # to serialize and deserialize a \Complex object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Complex#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/complex'
+ # x = Complex(2).as_json # => {"json_class"=>"Complex", "r"=>2, "i"=>0}
+ # y = Complex(2.0, 4).as_json # => {"json_class"=>"Complex", "r"=>2.0, "i"=>4}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Complex object:
+ #
+ # Complex.json_create(x) # => (2+0i)
+ # Complex.json_create(y) # => (2.0+4i)
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -21,7 +34,17 @@ def as_json(*)
}
end
- # Stores class name (Complex) along with real value r and imaginary value i as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/complex'
+ # puts Complex(2).to_json
+ # puts Complex(2.0, 4).to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Complex","r":2,"i":0}
+ # {"json_class":"Complex","r":2.0,"i":4}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/date.rb b/lib/json/add/date.rb
index 25523561..a9e68298 100644
--- a/lib/json/add/date.rb
+++ b/lib/json/add/date.rb
@@ -6,16 +6,29 @@
class Date
- # Deserializes JSON string by converting Julian year y, month
- # m, day d and Day of Calendar Reform sg to Date.
+ # See #as_json.
def self.json_create(object)
civil(*object.values_at('y', 'm', 'd', 'sg'))
end
alias start sg unless method_defined?(:start)
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Date#as_json and +Date.json_create+ may be used
+ # to serialize and deserialize a \Date object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Date#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/date'
+ # x = Date.today.as_json
+ # # => {"json_class"=>"Date", "y"=>2023, "m"=>11, "d"=>21, "sg"=>2299161.0}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Date object:
+ #
+ # Date.json_create(x)
+ # # => #
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -26,8 +39,15 @@ def as_json(*)
}
end
- # Stores class name (Date) with Julian year y, month m, day
- # d and Day of Calendar Reform sg as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/date'
+ # puts Date.today.to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Date","y":2023,"m":11,"d":21,"sg":2299161.0}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/date_time.rb b/lib/json/add/date_time.rb
index 38b0e86a..cd2a1611 100644
--- a/lib/json/add/date_time.rb
+++ b/lib/json/add/date_time.rb
@@ -6,9 +6,7 @@
class DateTime
- # Deserializes JSON string by converting year y, month m,
- # day d, hour H, minute M, second S,
- # offset of and Day of Calendar Reform sg to DateTime.
+ # See #as_json.
def self.json_create(object)
args = object.values_at('y', 'm', 'd', 'H', 'M', 'S')
of_a, of_b = object['of'].split('/')
@@ -23,8 +21,21 @@ def self.json_create(object)
alias start sg unless method_defined?(:start)
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods DateTime#as_json and +DateTime.json_create+ may be used
+ # to serialize and deserialize a \DateTime object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method DateTime#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/datetime'
+ # x = DateTime.now.as_json
+ # # => {"json_class"=>"DateTime", "y"=>2023, "m"=>11, "d"=>21, "sg"=>2299161.0}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \DateTime object:
+ #
+ # DateTime.json_create(x) # BUG? Raises Date::Error "invalid date"
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -39,9 +50,15 @@ def as_json(*)
}
end
- # Stores class name (DateTime) with Julian year y, month m,
- # day d, hour H, minute M, second S,
- # offset of and Day of Calendar Reform sg as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/datetime'
+ # puts DateTime.now.to_json
+ #
+ # Output:
+ #
+ # {"json_class":"DateTime","y":2023,"m":11,"d":21,"sg":2299161.0}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/exception.rb b/lib/json/add/exception.rb
index a107e5b3..fa699d6e 100644
--- a/lib/json/add/exception.rb
+++ b/lib/json/add/exception.rb
@@ -5,16 +5,27 @@
class Exception
- # Deserializes JSON string by constructing new Exception object with message
- # m and backtrace b serialized with to_json
+ # See #as_json.
def self.json_create(object)
result = new(object['m'])
result.set_backtrace object['b']
result
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Exception#as_json and +Exception.json_create+ may be used
+ # to serialize and deserialize a \Exception object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Exception#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/exception'
+ # x = Exception.new('Foo').as_json # => {"json_class"=>"Exception", "m"=>"Foo", "b"=>nil}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Exception object:
+ #
+ # Exception.json_create(x) # => #
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -23,8 +34,15 @@ def as_json(*)
}
end
- # Stores class name (Exception) with message m and backtrace array
- # b as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/exception'
+ # puts Exception.new('Foo').to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Exception","m":"Foo","b":null}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/ostruct.rb b/lib/json/add/ostruct.rb
index 686cf002..f912e522 100644
--- a/lib/json/add/ostruct.rb
+++ b/lib/json/add/ostruct.rb
@@ -6,14 +6,27 @@
class OpenStruct
- # Deserializes JSON string by constructing new Struct object with values
- # t serialized by to_json.
+ # See #as_json.
def self.json_create(object)
new(object['t'] || object[:t])
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods OpenStruct#as_json and +OpenStruct.json_create+ may be used
+ # to serialize and deserialize a \OpenStruct object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method OpenStruct#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/ostruct'
+ # x = OpenStruct.new('name' => 'Rowdy', :age => nil).as_json
+ # # => {"json_class"=>"OpenStruct", "t"=>{:name=>'Rowdy', :age=>nil}}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \OpenStruct object:
+ #
+ # OpenStruct.json_create(x)
+ # # => #
+ #
def as_json(*)
klass = self.class.name
klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
@@ -23,8 +36,15 @@ def as_json(*)
}
end
- # Stores class name (OpenStruct) with this struct's values t as a
- # JSON string.
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/ostruct'
+ # puts OpenStruct.new('name' => 'Rowdy', :age => nil).to_json
+ #
+ # Output:
+ #
+ # {"json_class":"OpenStruct","t":{'name':'Rowdy',"age":null}}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/range.rb b/lib/json/add/range.rb
index d1210c56..1fc8dcde 100644
--- a/lib/json/add/range.rb
+++ b/lib/json/add/range.rb
@@ -5,24 +5,28 @@
class Range
- # Returns a new \Range object constructed from object['a'],
- # which must be an array of values suitable for a call to Range.new:
- #
- # require 'json/add/range'
- # Range.json_create({"a"=>[1, 4]}) # => 1..4
- # Range.json_create({"a"=>[1, 4, true]}) # => 1...4
- # Range.json_create({"a" => ['a', 'd']}) # => "a".."d"
- #
+ # See #as_json.
def self.json_create(object)
new(*object['a'])
end
- # Returns a 2-element hash representing +self+:
+ # Methods Range#as_json and +Range.json_create+ may be used
+ # to serialize and deserialize a \Range object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Range#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
#
# require 'json/add/range'
- # (1..4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, false]}
- # (1...4).as_json # => {"json_class"=>"Range", "a"=>[1, 4, true]}
- # ('a'..'d').as_json # => {"json_class"=>"Range", "a"=>["a", "d", false]}
+ # 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]}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Range object:
+ #
+ # Range.json_create(x) # => 1..4
+ # Range.json_create(y) # => 1...4
+ # Range.json_create(z) # => "a".."d"
#
def as_json(*)
{
@@ -34,9 +38,15 @@ def as_json(*)
# Returns a JSON string representing +self+:
#
# require 'json/add/range'
- # (1..4).to_json # => "{\"json_class\":\"Range\",\"a\":[1,4,false]}"
- # (1...4).to_json # => "{\"json_class\":\"Range\",\"a\":[1,4,true]}"
- # ('a'..'d').to_json # => "{\"json_class\":\"Range\",\"a\":[\"a\",\"d\",false]}"
+ # puts (1..4).to_json
+ # puts (1...4).to_json
+ # puts ('a'..'d').to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Range","a":[1,4,false]}
+ # {"json_class":"Range","a":[1,4,true]}
+ # {"json_class":"Range","a":["a","d",false]}
#
def to_json(*args)
as_json.to_json(*args)
diff --git a/lib/json/add/rational.rb b/lib/json/add/rational.rb
index f7762260..a6033774 100644
--- a/lib/json/add/rational.rb
+++ b/lib/json/add/rational.rb
@@ -4,14 +4,28 @@
end
class Rational
- # Deserializes JSON string by converting numerator value n,
- # denominator value d, to a Rational object.
+
+ # See #as_json.
def self.json_create(object)
Rational(object['n'], object['d'])
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Rational#as_json and +Rational.json_create+ may be used
+ # to serialize and deserialize a \Rational object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Rational#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/rational'
+ # x = Rational(2, 3).as_json
+ # # => {"json_class"=>"Rational", "n"=>2, "d"=>3}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Rational object:
+ #
+ # Rational.json_create(x)
+ # # => (2/3)
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -20,7 +34,15 @@ def as_json(*)
}
end
- # Stores class name (Rational) along with numerator value n and denominator value d as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/rational'
+ # puts Rational(2, 3).to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Rational","n":2,"d":3}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/regexp.rb b/lib/json/add/regexp.rb
index 39d69fed..5649a072 100644
--- a/lib/json/add/regexp.rb
+++ b/lib/json/add/regexp.rb
@@ -5,15 +5,26 @@
class Regexp
- # Deserializes JSON string by constructing new Regexp object with source
- # s (Regexp or String) and options o serialized by
- # to_json
+ # See #as_json.
def self.json_create(object)
new(object['s'], object['o'])
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Regexp#as_json and +Regexp.json_create+ may be used
+ # to serialize and deserialize a \Regexp object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Regexp#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/regexp'
+ # x = /foo/.as_json
+ # # => {"json_class"=>"Regexp", "o"=>0, "s"=>"foo"}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Regexp object:
+ #
+ # Regexp.json_create(x) # => /foo/
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -22,8 +33,15 @@ def as_json(*)
}
end
- # Stores class name (Regexp) with options o and source s
- # (Regexp or String) as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/regexp'
+ # puts /foo/.to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Regexp","o":0,"s":"foo"}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/set.rb b/lib/json/add/set.rb
index 71e2a0ac..c521d8b9 100644
--- a/lib/json/add/set.rb
+++ b/lib/json/add/set.rb
@@ -4,16 +4,27 @@
defined?(::Set) or require 'set'
class Set
- # Import a JSON Marshalled object.
- #
- # method used for JSON marshalling support.
+
+ # See #as_json.
def self.json_create(object)
new object['a']
end
- # Marshal the object to JSON.
+ # Methods Set#as_json and +Set.json_create+ may be used
+ # to serialize and deserialize a \Set object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Set#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/set'
+ # x = Set.new(%w/foo bar baz/).as_json
+ # # => {"json_class"=>"Set", "a"=>["foo", "bar", "baz"]}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Set object:
+ #
+ # Set.json_create(x) # => #
#
- # method used for JSON marshalling support.
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -21,7 +32,15 @@ def as_json(*)
}
end
- # return the JSON value
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/set'
+ # puts Set.new(%w/foo bar baz/).to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Set","a":["foo","bar","baz"]}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/struct.rb b/lib/json/add/struct.rb
index e8395ed4..857bc8fd 100644
--- a/lib/json/add/struct.rb
+++ b/lib/json/add/struct.rb
@@ -5,14 +5,28 @@
class Struct
- # Deserializes JSON string by constructing new Struct object with values
- # v serialized by to_json.
+ # See #as_json.
def self.json_create(object)
new(*object['v'])
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Struct#as_json and +Struct.json_create+ may be used
+ # to serialize and deserialize a \Struct object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Struct#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/struct'
+ # Customer = Struct.new('Customer', :name, :address, :zip)
+ # x = Struct::Customer.new.as_json
+ # # => {"json_class"=>"Struct::Customer", "v"=>[nil, nil, nil]}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Struct object:
+ #
+ # Struct::Customer.json_create(x)
+ # # => #
+ #
def as_json(*)
klass = self.class.name
klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
@@ -22,8 +36,16 @@ def as_json(*)
}
end
- # Stores class name (Struct) with Struct values v as a JSON string.
- # Only named structs are supported.
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/struct'
+ # Customer = Struct.new('Customer', :name, :address, :zip)
+ # puts Struct::Customer.new.to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Struct","t":{'name':'Rowdy',"age":null}}
+ #
def to_json(*args)
as_json.to_json(*args)
end
diff --git a/lib/json/add/symbol.rb b/lib/json/add/symbol.rb
index 74b13a42..0fe6e934 100644
--- a/lib/json/add/symbol.rb
+++ b/lib/json/add/symbol.rb
@@ -1,11 +1,26 @@
+
#frozen_string_literal: false
unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
require 'json'
end
class Symbol
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+
+ # Methods Symbol#as_json and +Symbol.json_create+ may be used
+ # to serialize and deserialize a \Symbol object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Symbol#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/symbol'
+ # x = :foo.as_json
+ # # => {"json_class"=>"Symbol", "s"=>"foo"}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Symbol object:
+ #
+ # Symbol.json_create(x) # => :foo
+ #
def as_json(*)
{
JSON.create_id => self.class.name,
@@ -13,12 +28,20 @@ def as_json(*)
}
end
- # Stores class name (Symbol) with String representation of Symbol as a JSON string.
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/symbol'
+ # puts :foo.to_json
+ #
+ # Output:
+ #
+ # # {"json_class":"Symbol","s":"foo"}
+ #
def to_json(*a)
as_json.to_json(*a)
end
- # Deserializes JSON string by converting the string value stored in the object to a Symbol
+ # See #as_json.
def self.json_create(o)
o['s'].to_sym
end
diff --git a/lib/json/add/time.rb b/lib/json/add/time.rb
index b73acc40..28f12df5 100644
--- a/lib/json/add/time.rb
+++ b/lib/json/add/time.rb
@@ -5,7 +5,7 @@
class Time
- # Deserializes JSON string by converting time since epoch to Time
+ # See #as_json.
def self.json_create(object)
if usec = object.delete('u') # used to be tv_usec -> tv_nsec
object['n'] = usec * 1000
@@ -17,8 +17,22 @@ def self.json_create(object)
end
end
- # Returns a hash, that will be turned into a JSON object and represent this
- # object.
+ # Methods Time#as_json and +Time.json_create+ may be used
+ # to serialize and deserialize a \Time object;
+ # see Marshal[https://docs.ruby-lang.org/en/master/Marshal.html].
+ #
+ # \Method Time#as_json serializes +self+,
+ # returning a 2-element hash representing +self+:
+ #
+ # require 'json/add/time'
+ # x = Time.now.as_json
+ # # => {"json_class"=>"Time", "s"=>1700931656, "n"=>472846644}
+ #
+ # \Method +JSON.create+ deserializes such a hash, returning a \Time object:
+ #
+ # Time.json_create(x)
+ # # => 2023-11-25 11:00:56.472846644 -0600
+ #
def as_json(*)
nanoseconds = [ tv_usec * 1000 ]
respond_to?(:tv_nsec) and nanoseconds << tv_nsec
@@ -30,8 +44,15 @@ def as_json(*)
}
end
- # Stores class name (Time) with number of seconds since epoch and number of
- # microseconds for Time as JSON string
+ # Returns a JSON string representing +self+:
+ #
+ # require 'json/add/time'
+ # puts Time.now.to_json
+ #
+ # Output:
+ #
+ # {"json_class":"Time","s":1700931678,"n":980650786}
+ #
def to_json(*args)
as_json.to_json(*args)
end