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



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

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_data)
      JrJackson::Base.generate(object, options)
    elsif 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



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

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



31
32
33
# File 'lib/jrjackson/jrjackson.rb', line 31

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



27
28
29
# File 'lib/jrjackson/jrjackson.rb', line 27

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



23
24
25
# File 'lib/jrjackson/jrjackson.rb', line 23

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



19
20
21
# File 'lib/jrjackson/jrjackson.rb', line 19

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