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. Page wiki View or edit the community-maintained wiki page associated with this page.

std.json

JavaScript Object Notation

License:
Boost License 1.0.

Authors:
Jeremie Pelletier, David Herberth

References:
http://json.org/

Source:
std/json.d

enum JSON_TYPE: byte;
JSON type enumeration

STRING
INTEGER
UINTEGER
FLOAT
OBJECT
ARRAY
TRUE
FALSE
NULL
Indicates the type of a JSONValue.

struct JSONValue;
JSON value node

const @property JSON_TYPE type();
Specifies the type of the value stored in this structure.

inout @property inout(string) str();
@property string str(string v);
Value getter/setter for JSON_TYPE.STRING. Throws JSONException for read access if type is not JSON_TYPE.STRING.

inout @property inout(long) integer();
@property long integer(long v);
Value getter/setter for JSON_TYPE.INTEGER. Throws JSONException for read access if type is not JSON_TYPE.INTEGER.

inout @property inout(ulong) uinteger();
@property ulong uinteger(ulong v);
Value getter/setter for JSON_TYPE.UINTEGER. Throws JSONException for read access if type is not JSON_TYPE.UINTEGER.

inout @property inout(real) floating();
@property real floating(real v);
Value getter/setter for JSON_TYPE.FLOAT. Throws JSONException for read access if type is not JSON_TYPE.FLOAT.

inout @property ref inout(JSONValue[string]) object();
@property JSONValue[string] object(JSONValue[string] v);
Value getter/setter for JSON_TYPE.OBJECT. Throws JSONException for read access if type is not JSON_TYPE.OBJECT.

inout @property ref inout(JSONValue[]) array();
@property JSONValue[] array(JSONValue[] v);
Value getter/setter for JSON_TYPE.ARRAY. Throws JSONException for read access if type is not JSON_TYPE.ARRAY.

this(T)(T arg) if (!isStaticArray!T);
this(T)(ref T arg) if (isStaticArray!T);
inout this(T : JSONValue)(inout T arg);
Constructor for JSONValue. If arg is a JSONValue its value and type will be copied to the new JSONValue. Note that this is a shallow copy: if type is JSON_TYPE.OBJECT or JSON_TYPE.ARRAY then only the reference to the data will be copied. Otherwise, arg must be implicitly convertible to one of the following types: typeof(null), string, ulong, long, real, an associative array V[K] for any V and K i.e. a JSON object, any array or bool. The type will be set accordingly.

inout ref inout(JSONValue) opIndex(size_t i);
Array syntax for json arrays. Throws JSONException if type is not JSON_TYPE.ARRAY.

inout ref inout(JSONValue) opIndex(string k);
Hash syntax for json objects. Throws JSONException if type is not JSON_TYPE.OBJECT.

int opApply(int delegate(size_t index, ref JSONValue) dg);
Implements the foreach opApply interface for json arrays.

int opApply(int delegate(string key, ref JSONValue) dg);
Implements the foreach opApply interface for json objects.

string toString();
Implicitly calls toJSON on this JSONValue.

string toPrettyString();
Implicitly calls toJSON on this JSONValue, like toString, but also passes true as pretty argument.

JSONValue parseJSON(T)(T json, int maxDepth = -1) if (isInputRange!T);
Parses a serialized string and returns a tree of JSON values.

string toJSON(in JSONValue* root, in bool pretty = false);
Takes a tree of JSON values and returns the serialized string.

If pretty is false no whitespaces are generated. If pretty is true serialized string is formatted to be human-readable. No exact formatting layout is guaranteed in the latter case.

class JSONException: object.Exception;
Exception thrown on JSON errors