View source code
Display the source code in std/json.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Function std.json.JSONValue.get
A convenience getter that returns this JSONValue
as the specified D type.
inout inout(T) get(T)() const pure @property @safe;
inout inout(T) get(T)() pure @property @trusted;
Note
Only numeric types, bool
, string
, JSONValue[string]
, and JSONValue[]
types are accepted
Throws
JSONException
if T
cannot hold the contents of this JSONValue
ConvException
in case of integer overflow when converting to T
Example
import std .exception;
import std .conv;
string s =
`{
"a": 123,
"b": 3.1415,
"c": "text",
"d": true,
"e": [1, 2, 3],
"f": { "a": 1 },
"g": -45,
"h": ` ~ ulong .max .to!string ~ `,
}`;
struct a { }
immutable json = parseJSON(s);
writeln(json["a"] .get!double); // 123.0
writeln(json["a"] .get!int); // 123
writeln(json["a"] .get!uint); // 123
writeln(json["b"] .get!double); // 3.1415
assertThrown!JSONException(json["b"] .get!int);
writeln(json["c"] .get!string); // "text"
writeln(json["d"] .get!bool); // true
assertNotThrown(json["e"] .get!(JSONValue[]));
assertNotThrown(json["f"] .get!(JSONValue[string]));
static assert(!__traits(compiles, json["a"] .get!a));
assertThrown!JSONException(json["e"] .get!float);
assertThrown!JSONException(json["d"] .get!(JSONValue[string]));
assertThrown!JSONException(json["f"] .get!(JSONValue[]));
writeln(json["g"] .get!int); // -45
assertThrown!ConvException(json["g"] .get!uint);
writeln(json["h"] .get!ulong); // ulong.max
assertThrown!ConvException(json["h"] .get!uint);
assertNotThrown(json["h"] .get!float);
Authors
Jeremie Pelletier, David Herberth
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.