Jor*_*ing 13
默认情况下,JSON模块不会扩展Exception.你必须require "json/add/exception".我不确定这是否记录在任何地方:
require "json/add/exception"
begin
nil.foo
rescue => exception
ex = exception
end
puts ex.to_json
# => {"json_class":"NoMethodError","m":"undefined method `foo' for nil:NilClass","b":["prog.rb:5:in `<main>'"]}
Run Code Online (Sandbox Code Playgroud)
看看ext/json/lib/json/add在Ruby源,看看哪些类以这种方式工作.如果这样做require "json/add/core",将为Date,DateTime,Exception,OpenStruct,Range,Regexp,Struct,Symbol,Time等加载JSON扩展.