Module: JsonToStruct
- Defined in:
- lib/json_to_struct.rb
Overview
JsonToStruct is a module that converts a JSON string to a nested struct
usage:
> s = JsonToStruct.load(
" {\n \"employee\": {\n \"name\":\"Hal\",\n \"salary\":56000,\n \"married\":false\n }\n }\n JSON\n )\n=> #<struct employee=\n #<struct name=\"Hal\", salary=56000, married=false>>\n > s.employee.name\n=> 'Hal'\n"
Class Method Summary collapse
Class Method Details
._load_helper(json) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/json_to_struct.rb', line 27 def self._load_helper(json) case json when Hash struct = ::Struct.new(*json.keys) struct.new(*json.values.map { |v| _load_helper(v) }) when Array json.map { |v| _load_helper(v) } else json end end |
.load(json_string) ⇒ Object
22 23 24 25 |
# File 'lib/json_to_struct.rb', line 22 def self.load(json_string) json = Oj.load(json_string, symbol_keys: true) _load_helper(json) end |