Maintenance Ruby 3.3 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Time#as_json
as_json(*)
ext/json/lib/json/add/time.rb
View on GitHub ↗
# File tmp/rubies/ruby-3.3.0/ext/json/lib/json/add/time.rb, line 36
def as_json(*)
nanoseconds = [ tv_usec * 1000 ]
respond_to?(:tv_nsec) and nanoseconds << tv_nsec
nanoseconds = nanoseconds.max
{
JSON.create_id => self.class.name,
's' => tv_sec,
'n' => nanoseconds,
}
end
Methods Time#as_json and Time.json_create may be used to serialize and deserialize a Time object; see Marshal.
Method Time#as_json serializes self, returning a 2-element hash representing self:
Example
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:
Example
Time.json_create(x) # => 2023-11-25 11:00:56.472846644 -0600