Time#to_json
結論
JSON::Generator::GeneratorMethods::Object#to_json refs.が呼ばれる to_s.to_jsonを返している
調査メモ
json だけを読み込んだ状態で Time#to_json を呼ぶと文字列が返る
code:ruby
require 'json'
p Time.now.to_json
# "\"2024-02-08 18:07:03 +0900\""
json/add/core (json/add/time) が呼ばれると Time#to_json はHashを返す
code:ruby
require 'json/add/core'
p Time.now.to_json
# "{\"json_class\":\"Time\",\"s\":1707383239,\"n\":737094000}"
json だけを読み込んだ状態では json/add/core はrequireされていない
code:ruby
require 'json'
p (require 'json/add/core')
# true
json をrequireするだけで追加されるメソッドの中に文字列を返すものがある