Module: JsonToOpenStruct::ClassMethods

Defined in:
lib/json_to_openstruct.rb

Instance Method Summary collapse

Instance Method Details

#parse_hash(hash) ⇒ Object



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

def parse_hash(hash)
  struct = self.new
  hash.keys.each do |key|
    attr_name = StringHelper.underscore(key.to_s)
    struct.send(attr_name)
    if hash[key].kind_of?(Array)
      struct[attr_name] = []
      hash[key].each do |arr_item|
        struct[attr_name] << self.parse_hash(arr_item)
      end
    elsif hash[key].kind_of?(Hash)
      struct[attr_name] = self.parse_hash(hash[key])
    else
      struct[attr_name] = hash[key]
    end
  end
  struct
end

#parse_json(json) ⇒ Object



77
78
79
80
# File 'lib/json_to_openstruct.rb', line 77

def parse_json(json)
  hash = JSON.parse(json)
  parse_hash(hash)
end