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.
Defined in:
json.crInstance Method Summary
-
#==(other : JSON::Any)
Returns
true
if bothself
and other's raw object are equal. -
#==(other)
Returns
true
if the raw object is equal to other. -
#[](path : Enumerable) : JSON::Any
Returns the value corresponding to the path.
-
#[]=(key : Int, value : JSON::Any)
Sets the value of key to the given value.
-
#[]=(path : Enumerable, value : JSON::Any) : JSON::Any
Sets the value of key to the given value.
-
#[]=(key : String, value : Any)
Sets the value of key to the given value.
-
#[]?(path : Enumerable) : JSON::Any | Nil
Returns the value corresponding to the path.
-
#as_a : Array(Any)
Checks that the underlying value is
Array
, and returns its value. -
#as_a? : Array(Any) | Nil
Checks that the underlying value is
Array
, and returns its value. -
#as_bytes : Bytes
Checks that the underlying value is
Bytes
, and returns its value. -
#as_bytes? : Bytes | Nil
Checks that the underlying value is
Bytes
, and returns its value. -
#as_f : Float64
Checks that the underlying value is
Float64
, and returns its value. -
#as_f32 : Float32
Checks that the underlying value is
Float
, and returns its value as anFloat32
. -
#as_f32? : Float32 | Nil
Checks that the underlying value is
Float
, and returns its value as anFloat32
. -
#as_f? : Float64 | Nil
Checks that the underlying value is
Float64
, and returns its value. -
#as_h? : Hash(Any, Any) | Nil
Checks that the underlying value is
Hash
, and returns its value. -
#as_i : Int32
Checks that the underlying value is
Int64
, and returns its value asInt32
. -
#as_i64 : Int64
Checks that the underlying value is
Int64
, and returns its value. -
#as_i64? : Int64 | Nil
Checks that the underlying value is
Int64
, and returns its value. -
#as_i? : Int32 | Nil
Checks that the underlying value is
Int64
, and returns its value asInt32
. -
#as_nil : Nil
Checks that the underlying value is
Nil
, and returnsnil
. -
#as_s : String
Checks that the underlying value is
String
, and returns its value. -
#as_s? : String | Nil
Checks that the underlying value is
String
, and returns its value. -
#clone
Returns a new JSON::Any instance with the
raw
value#clone
ed. -
#delete(index : Int)
Deletes the element at the given index.
-
#delete(path : Enumerable) : JSON::Any
Removes the element corresponding to the path.
-
#delete(key : String)
Deletes the key-value pair.
-
#dup
Returns a new JSON::Any instance with the
raw
value#dup
ed. -
#hash(hasher)
See
Object#hash(hasher)
Instance Method Detail
Returns true
if both self
and other's raw object are equal.
Returns the value corresponding to the path. If not found, raise.
Sets the value of key to the given value.
Returns the value corresponding to the path. If not found, returns nil.
Checks that the underlying value is Array
, and returns its value.
Raises otherwise.
Checks that the underlying value is Array
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Bytes
, and returns its value.
Raises otherwise.
Checks that the underlying value is Bytes
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Float64
, and returns its value.
Raises otherwise.
Checks that the underlying value is Float
, and returns its value as an Float32
.
Raises otherwise.
Checks that the underlying value is Float
, and returns its value as an Float32
.
Returns nil
otherwise.
Checks that the underlying value is Float64
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Hash
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Int64
, and returns its value as Int32
.
Raises otherwise.
Checks that the underlying value is Int64
, and returns its value.
Raises otherwise.
Checks that the underlying value is Int64
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Int64
, and returns its value as Int32
.
Returns nil
otherwise.
Checks that the underlying value is String
, and returns its value.
Raises otherwise.
Checks that the underlying value is String
, and returns its value.
Returns nil
otherwise.
Removes the element corresponding to the path.