struct JSON::Any
- JSON::Any
- Struct
- Value
- Object
Overview
JSON::Any
is a convenient wrapper around all possible JSON types (JSON::Any::Type
)
and can be used for traversing dynamic or unknown JSON structures.
require "json"
obj = JSON.parse(%({"access": [{"name": "mapping", "speed": "fast"}, {"name": "any", "speed": "slow"}]}))
obj["access"][1]["name"].as_s # => "any"
obj["access"][1]["speed"].as_s # => "slow"
Note that methods used to traverse a JSON structure, #[]
and #[]?
,
always return a JSON::Any
to allow further traversal. To convert them to String
,
Int32
, etc., use the as_
methods, such as #as_s
, #as_i
, which perform
a type check against the raw underlying value. This means that invoking #as_s
when the underlying value is not a String will raise: the value won't automatically
be converted (parsed) to a String
. There are also nil-able variants (#as_i?
, #as_s?
, ...),
which return nil
when the underlying value type won't match.
Included Modules
Defined in:
lib/con/src/to_con.crjson.cr
Instance Method Summary
-
#[]=(key : String, value : Any) : T::Any
Sets the value of key to the given value.
Instance methods inherited from module Dynany(JSON)
[](path : Enumerable) : T::Any
[],
[]=(key : Int, value : T::Any)[]=(path : Enumerable, value : T::Any) : T::Any []=, []?(path : Enumerable) : T::Any | Nil []?, delete(index : Int) : T::Any | Nil
delete(key : String) : T::Any | Nil
delete(path : Enumerable) : T::Any delete
Instance Method Detail
Sets the value of key to the given value.