Module: JrJackson::Json

Defined in:
lib/jrjackson/jrjackson.rb

Constant Summary collapse

TIME_REGEX =
%r(\A(\d{4}-\d\d-\d\d|(\w{3}\s){2}\d\d)\s\d\d:\d\d:\d\d)

Class Method Summary collapse

Class Method Details

.dump(object, options = {}) ⇒ Object Also known as: generate



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/jrjackson/jrjackson.rb', line 34

def dump(object, options = {})
  case object
  when Hash, Array, String, Java::JavaUtil::Map, Java::JavaUtil::List
    JrJackson::Raw.generate(object, options)
  when true, false
    object.to_s
  when nil
    'null'
  else
    if object.respond_to?(:to_json)
      object.to_json
    elsif object.respond_to?(:to_s)
      object.to_s
    else
      object
    end
  end
end

.load(json_string, options = nil) ⇒ Object Also known as: parse



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/jrjackson/jrjackson.rb', line 16

def load(json_string, options = nil)
  if json_string.is_a?(String) && is_time_string?(json_string)
    return JrJackson::Raw.parse_raw("\"#{json_string}\"")
  end

  if options && !options.empty?
    if options.size == 1 && !!options[:raw]
      return JrJackson::Raw.parse_raw(json_string)
    end
    if options.size == 1 && !!options[:symbolize_keys]
      return JrJackson::Raw.parse_sym(json_string)
    end
    JrJackson::Raw.parse(json_string, options)
  else
    JrJackson::Raw.parse_str(json_string)
  end
end