Method: JSON.load
- Defined in:
- lib/vendor/json_pure/lib/json/common.rb
.load(source, proc = nil, options = {}) ⇒ Object Also known as: restore
Load a ruby data structure from a JSON source and return it. A source can either be a string-like object, an IO-like object, or an object responding to the read method. If proc was given, it will be called with any nested Ruby object as an argument recursively in depth first order. To modify the default options pass in the optional options argument as well.
BEWARE: This method is meant to serialise data from trusted user input, like from your own database server or clients under your control, it could be dangerous to allow untrusted users to pass JSON sources into it. The default options for the parser can be changed via the load_default_options method.
This method is part of the implementation of the load/dump interface of Marshal and YAML.
322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 |
# File 'lib/vendor/json_pure/lib/json/common.rb', line 322 def load(source, proc = nil, = {}) opts = .merge if source.respond_to? :to_str source = source.to_str elsif source.respond_to? :to_io source = source.to_io.read elsif source.respond_to?(:read) source = source.read end if opts[:quirks_mode] && (source.nil? || source.empty?) source = 'null' end result = parse(source, opts) recurse_proc(result, &proc) if proc result end |