struct NASON::Any
- NASON::Any
- Struct
- Value
- Object
Overview
NASON::Any
is a convenient wrapper around all possible NASON types (NASON::Any::Type
)
and can be used for traversing dynamic or unknown NASON structures.
require "nason"
obj = NASON.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 NASON structure, #[]
and #[]?
,
always return a NASON::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:
nason/any.crConstructors
-
.new(raw : Type)
Creates a
NASON::Any
that wraps the given value. -
.new(pull : NASON::PullParser)
Reads a
NASON::Any
value from the given pull parser.
Instance Method Summary
-
#==(other : NASON::Any)
Returns
true
if bothself
and other's raw object are equal. -
#==(other)
Returns
true
if the raw object is equal to other. -
#[](index : Int) : NASON::Any
Assumes the underlying value is an
Array
and returns the element at the given index. -
#[](key : String) : NASON::Any
Assumes the underlying value is a
Hash
and returns the element with the given key. -
#[]?(index : Int) : NASON::Any | Nil
Assumes the underlying value is an
Array
and returns the element at the given index, ornil
if out of bounds. -
#[]?(key : String) : NASON::Any | Nil
Assumes the underlying value is a
Hash
and returns the element with the given key, ornil
if the key is not present. -
#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_bool : Bool
Checks that the underlying value is
Bool
, and returns its value. -
#as_bool? : Bool | Nil
Checks that the underlying value is
Bool
, and returns its value. -
#as_f : Float64
Checks that the underlying value is
Float
, and returns its value as anFloat64
. -
#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
Float
, and returns its value as anFloat64
. -
#as_h : Hash(String, Any)
Checks that the underlying value is
Hash
, and returns its value. -
#as_h? : Hash(String, Any) | Nil
Checks that the underlying value is
Hash
, and returns its value. -
#as_i : Int32
Checks that the underlying value is
Int
, and returns its value as anInt32
. -
#as_i64 : Int64
Checks that the underlying value is
Int
, and returns its value as anInt64
. -
#as_i64? : Int64 | Nil
Checks that the underlying value is
Int
, and returns its value as anInt64
. -
#as_i? : Int32 | Nil
Checks that the underlying value is
Int
, and returns its value as anInt32
. -
#as_nil : Nil
Checks that the underlying value is
Nil
, and returnsnil
. - #as_null : Null
-
#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
-
#dig(index_or_key : String | Int, *subkeys) : NASON::Any
Traverses the depth of a structure and returns the value, otherwise raises.
-
#dig?(index_or_key : String | Int, *subkeys) : NASON::Any | Nil
Traverses the depth of a structure and returns the value.
- #dup
-
#hash(hasher)
See
Object#hash(hasher)
-
#inspect(io : IO) : Nil
Appends this struct's name and instance variables names and values to the given IO.
-
#raw : Type
Returns the raw underlying value.
- #size : Int
-
#to_s(io : IO) : Nil
Same as
#inspect(io)
. - #to_yaml(yaml : YAML::Nodes::Builder) : Nil
Instance methods inherited from struct Value
==(other : NASON::Any)
==
Instance methods inherited from class Object
===(other : NASON::Any)
===,
nil_or_null?
nil_or_null?,
not_null!
not_null!,
null?
null?,
to_nason(io : IO) : Nilto_nason : String to_nason, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json
Class methods inherited from class Object
from_nason(string_or_io, root : String)from_nason(string_or_io) from_nason
Constructor Detail
Instance Method Detail
Assumes the underlying value is an Array
and returns the element
at the given index.
Raises if the underlying value is not an Array
.
Assumes the underlying value is a Hash
and returns the element
with the given key.
Raises if the underlying value is not a Hash
.
Assumes the underlying value is an Array
and returns the element
at the given index, or nil
if out of bounds.
Raises if the underlying value is not an Array
.
Assumes the underlying value is a Hash
and returns the element
with the given key, or nil
if the key is not present.
Raises if the underlying value is not a Hash
.
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 Bool
, and returns its value.
Raises otherwise.
Checks that the underlying value is Bool
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Float
, and returns its value as an Float64
.
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 Float
, and returns its value as an Float64
.
Returns nil
otherwise.
Checks that the underlying value is Hash
, and returns its value.
Raises otherwise.
Checks that the underlying value is Hash
, and returns its value.
Returns nil
otherwise.
Checks that the underlying value is Int
, and returns its value as an Int32
.
Raises otherwise.
Checks that the underlying value is Int
, and returns its value as an Int64
.
Raises otherwise.
Checks that the underlying value is Int
, and returns its value as an Int64
.
Returns nil
otherwise.
Checks that the underlying value is Int
, and returns its value as an Int32
.
Returns nil
otherwise.
Checks that the underlying value is Nil
, and returns nil
.
Raises 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.
Traverses the depth of a structure and returns the value, otherwise raises.
Traverses the depth of a structure and returns the value.
Returns nil
if not found.
Appends this struct's name and instance variables names and values to the given IO.
struct Point
def initialize(@x : Int32, @y : Int32)
end
end
p1 = Point.new 1, 2
p1.to_s # "Point(@x=1, @y=2)"
p1.inspect # "Point(@x=1, @y=2)"