Method: JSON.dump
- Defined in:
- lib/json/common.rb
.dump(obj, anIO = nil, limit = nil) ⇒ Object
Dumps obj as a JSON string, i.e. calls generate on the object and returns the result.
If anIO (an IO-like object or an object that responds to the write method) was given, the resulting JSON is written to it.
If the number of nested arrays or objects exceeds limit, an ArgumentError exception is raised. This argument is similar (but not exactly the same!) to the limit argument in Marshal.dump.
The default options for the generator can be changed via the dump_default_options method.
This method is part of the implementation of the load/dump interface of Marshal and YAML.
384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 |
# File 'lib/json/common.rb', line 384 def dump(obj, anIO = nil, limit = nil) if anIO and limit.nil? anIO = anIO.to_io if anIO.respond_to?(:to_io) unless anIO.respond_to?(:write) limit = anIO anIO = nil end end opts = JSON. limit and opts.update(:max_nesting => limit) result = generate(obj, opts) if anIO anIO.write result anIO else result end rescue JSON::NestingError raise ArgumentError, "exceed depth limit" end |