class MultiJson::Adapters::JsonGem

Use the JSON gem to dump/load.

Constants

PRETTY_STATE_PROTOTYPE
ParseError

Public Instance Methods

dump(object, options = {}) click to toggle source

Serialize a Ruby object to JSON

@api private @param object [Object] object to serialize @param options [Hash] serialization options @return [String] JSON string

@example Serialize object to JSON

adapter.dump({key: "value"}) #=> '{"key":"value"}'
# File lib/multi_json/adapters/json_gem.rb, line 45
def dump(object, options = {})
  opts = options.except(:adapter)
  json_object = object.respond_to?(:as_json) ? object.as_json : object
  return ::JSON.dump(json_object) if opts.empty?

  if opts.delete(:pretty)
    opts = PRETTY_STATE_PROTOTYPE.merge(opts)
    return ::JSON.pretty_generate(json_object, opts)
  end

  ::JSON.generate(json_object, opts)
end
load(string, options = {}) click to toggle source

Parse a JSON string into a Ruby object

@api private @param string [String] JSON string to parse @param options [Hash] parsing options @return [Object] parsed Ruby object

@example Parse JSON string

adapter.load('{"key":"value"}') #=> {"key" => "value"}
# File lib/multi_json/adapters/json_gem.rb, line 29
def load(string, options = {})
  string = string.dup.force_encoding(Encoding::UTF_8) if string.encoding != Encoding::UTF_8

  options[:symbolize_names] = true if options.delete(:symbolize_keys)
  ::JSON.parse(string, options)
end