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



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/jrjackson/jrjackson.rb', line 56

def dump(object, options = {})
  case object
  when Hash, Array, String, ::Java::JavaUtil::Map, ::Java::JavaUtil::List
    JrJackson::Base.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_source, options = nil) ⇒ Object Also known as: parse



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

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

  if options && !options.empty?
    if options.size == 1 && !!options[:raw]
      return JrJackson::Java.parse_raw(json_source, options)
    end
    if options.size == 1 && !!options[:symbolize_keys]
      return JrJackson::Ruby.parse_sym(json_source, options)
    end
    if options.size == 2 && !!options[:raw] && !!options[:use_bigdecimal]
      return JrJackson::Java.parse(json_source, options)
    end
    # JrJackson::Raw.parse(json_source, options)
    JrJackson::Ruby.parse(json_source, options)
  else
    # JrJackson::Raw.parse_str(json_source)
    JrJackson::Ruby.parse(json_source, nil)
  end
end

.load_java(json_source, options = nil) ⇒ Object Also known as: parse_java



29
30
31
# File 'lib/jrjackson/jrjackson.rb', line 29

def load_java(json_source, options = nil)
  JrJackson::Java.parse(json_source, options)
end

.load_ruby(json_source, options = nil) ⇒ Object Also known as: parse_ruby



25
26
27
# File 'lib/jrjackson/jrjackson.rb', line 25

def load_ruby(json_source, options = nil)
  JrJackson::Ruby.parse(json_source, options)
end

.sc_load(handler, json_source, options = nil) ⇒ Object Also known as: sc_parse



21
22
23
# File 'lib/jrjackson/jrjackson.rb', line 21

def sc_load(handler, json_source, options = nil)
  JrJackson::Sch.parse(handler, json_source, options)
end

.sj_load(handler, json_source, options = nil) ⇒ Object Also known as: sj_parse



17
18
19
# File 'lib/jrjackson/jrjackson.rb', line 17

def sj_load(handler, json_source, options = nil)
  JrJackson::Saj.parse(handler, json_source, options)
end