aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/json/backends/jsongem.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib/active_support/json/backends/jsongem.rb')
-rw-r--r--activesupport/lib/active_support/json/backends/jsongem.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/json/backends/jsongem.rb b/activesupport/lib/active_support/json/backends/jsongem.rb
index de847e30a3..d1a1cdd7d7 100644
--- a/activesupport/lib/active_support/json/backends/jsongem.rb
+++ b/activesupport/lib/active_support/json/backends/jsongem.rb
@@ -6,8 +6,11 @@ module ActiveSupport
module JSONGem
extend self
- # Converts a JSON string into a Ruby object.
+ # Parses a JSON string or IO and convert it into an object
def decode(json)
+ if json.respond_to?(:read)
+ json = json.read
+ end
data = ::JSON.parse(json)
if ActiveSupport.parse_json_times
convert_dates_from(data)