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.

Module std.json

JavaScript Object Notation



import std.conv : to;

// parse a file or string of json into a usable structure
string s = `{ "language": "D", "rating": 3.5, "code": "42" }`;
JSONValue j = parseJSON(s);
// j and j["language"] return JSONValue,
// j["language"].str returns a string
writeln(j["language"].str); // "D"
writeln(j["rating"].floating); // 3.5

// check a type
long x;
if (const(JSONValue)* code = "code" in j)
    if (code.type() == JSON_TYPE.INTEGER)
        x = code.integer;
        x = to!int(code.str);

// create a json struct
JSONValue jj = [ "language": "D" ];
// rating doesnt exist yet, so use .object to assign
jj.object["rating"] = JSONValue(3.5);
// create an array to assign to list
jj.object["list"] = JSONValue( ["a", "b", "c"] );
// list already exists, so .object optional
jj["list"].array ~= JSONValue("D");

string jjStr = `{"language":"D","list":["a","b","c","D"],"rating":3.5}`;
writeln(jj.toString); // jjStr


parseJSON(json, options) Parses a serialized string and returns a tree of JSON values.
parseJSON(json, maxDepth, options) Parses a serialized string and returns a tree of JSON values.
toJSON(root, pretty, options) Takes a tree of JSON values and returns the serialized string.


JSONException Exception thrown on JSON errors


JSONValue JSON value node


JSONFloatLiteral String literals used to represent special float values within JSON strings.
JSONOptions Flags that control how json is encoded and parsed.
JSON_TYPE JSON type enumeration


Jeremie Pelletier, David Herberth


Boost License 1.0.