lib/jrjackson/jrjackson.rb in jrjackson-0.2.9 vs lib/jrjackson/jrjackson.rb in jrjackson-0.3.0
- old
+ new
@@ -1,42 +1,63 @@
unless RUBY_PLATFORM =~ /java/
puts "This library is only compatible with a java-based ruby environment like JRuby."
exit 255
end
-require_relative "jars/jrjackson-1.2.12.jar"
-# require_relative "linked/jrjackson-1.2.12.jar"
+require_relative "jars/jrjackson-1.2.16.jar"
+# require_relative "linked/jrjackson-1.2.16.jar"
require 'com/jrjackson/jr_jackson'
module JrJackson
module Json
class << self
TIME_REGEX = %r(\A(\d{4}-\d\d-\d\d|(\w{3}\s){2}\d\d)\s\d\d:\d\d:\d\d)
- def load(json_string, options = nil)
- if json_string.is_a?(String) && is_time_string?(json_string)
- return JrJackson::Raw.parse_raw("\"#{json_string}\"")
+ def sj_load(handler, json_source, options = nil)
+ JrJackson::Saj.parse(handler, json_source, options)
+ end
+
+ def sc_load(handler, json_source, options = nil)
+ JrJackson::Sch.parse(handler, json_source, options)
+ end
+
+ def load_ruby(json_source, options = nil)
+ JrJackson::Ruby.parse(json_source, options)
+ end
+
+ def load_java(json_source, options = nil)
+ JrJackson::Java.parse(json_source, options)
+ end
+
+ 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::Raw.parse_raw(json_string)
+ return JrJackson::Java.parse_raw(json_source, options)
end
if options.size == 1 && !!options[:symbolize_keys]
- return JrJackson::Raw.parse_sym(json_string)
+ return JrJackson::Ruby.parse_sym(json_source, options)
end
- JrJackson::Raw.parse(json_string, options)
+ 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_string)
+ # JrJackson::Raw.parse_str(json_source)
+ JrJackson::Ruby.parse(json_source, nil)
end
end
def dump(object, options = {})
case object
- when Hash, Array, String, Java::JavaUtil::Map, Java::JavaUtil::List
- JrJackson::Raw.generate(object, options)
+ 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
@@ -48,16 +69,20 @@
object
end
end
end
+ alias :sc_parse :sc_load
+ alias :sj_parse :sj_load
alias :parse :load
+ alias :parse_ruby :load_ruby
+ alias :parse_java :load_java
alias :generate :dump
private
- def is_time_string?(json_string)
- json_string =~ TIME_REGEX
+ def is_time_string?(json_source)
+ json_source =~ TIME_REGEX
rescue => e
raise JrJackson::ParseError, e.message
end
end
end