JSON::Any
Inherits Dynany < Struct < Value < Object
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.
Instance methods
Returns the value corresponding to the path. If not found, raise.
Returns the value corresponding to the path. If not found, returns nil.