Struct JSONValue
Represents a generic JSON value.
The JSONValue
type is based on std.variant.Algebraic
and as such
provides the usual binary and unary operators for handling the contained
raw value.
Raw values can be either null
, bool
, double
, string
,
JSONValue[]
or JSONValue[string]
.
Constructors
Name | Description |
this
|
Constructs a JSONValue from the given raw value.
|
Fields
Name | Type | Description |
location
|
Location | Optional location of the corresponding token in the source document.
|
payload
|
taggedalgebraic.TaggedAlgebraic!(stdx.data.json.value.JSONValue.PayloadUnion) | Holds the data contained in this value.
|
Methods
Name | Description |
get
|
Returns the raw contained value.
|
hasType
|
Tests if the stored value is of a given type.
|
isNull
|
Tests if the stored value is of kind Kind.null_ .
|
opAssign
|
Constructs a JSONValue from the given raw value.
|
opIndex
|
Temporary index operations until std.variant is fixed in 2.067
|
Aliases
Name | Description |
Payload
|
Alias for a TaggedAlgebraic able to hold all possible JSON
value types.
|
Example
Shows the basic construction and operations on JSON values.
JSONValue a = 12;
JSONValue b = 13;
assert(a == 12.0);
assert(b == 13.0);
static if (__VERSION__ >= 2067)
assert(a + b == 25.0);
auto c = JSONValue([a, b]);
assert(c[0] == 12.0);
assert(c[1] == 13.0);
assert(c[0] == a);
assert(c[1] == b);
auto d = JSONValue(["a": a, "b": b]);
assert(d["a"] == 12.0);
assert(d["b"] == 13.0);
assert(d["a"] == a);
assert(d["b"] == b);