vibe.d beta banner
get vibe.d


JSON serialization and value handling.

This module provides the Json struct for reading, writing and manipulating JSON values. De(serialization) of arbitrary D types is also supported and is recommended for handling JSON in performance sensitive applications.


void manipulateJson(Json j)
	import std.stdio;

	// retrieving the values is done using get()
	assert(j["name"].get!string == "Example");
	assert(j["id"].get!int == 1);

	// semantic conversions can be done using to()
	assert(j["id"].to!string == "1");

	// prints:
	// name: "Example"
	// id: 1
	foreach (string key, value; j)
		writefln("%s: %s", key, value);

	// print out as JSON: {"name": "Example", "id": 1}
	writefln("JSON: %s", j.toString());

	// DEPRECATED: object members can be accessed using member syntax, just like in JavaScript
	//j = Json.emptyObject;
	// = "Example";
	// = 1;


Constructing Json objects

// construct a JSON object {"field1": "foo", "field2": 42, "field3": true}

// using the constructor
Json j1 = Json(["field1": Json("foo"), "field2": Json(42), "field3": Json(true)]);

// using piecewise construction
Json j2 = Json.emptyObject;
j2["field1"] = "foo";
j2["field2"] = 42.0;
j2["field3"] = true;

// using serialization
struct S {
	string field1;
	double field2;
	bool field3;
Json j3 = S("foo", 42, true).serializeToJson();

// using serialization, converting directly to a JSON string
string j4 = S("foo", 32, true).serializeToJsonString();


Name Description
convertJsonToASCII Helper function that escapes all Unicode characters in a JSON string.
deserializeJson Deserializes a JSON value into the destination variable.
parseJson Parses the given range as a JSON string and returns the corresponding Json object.
parseJsonString Parses the given JSON string and returns the corresponding Json object.
serializeToJson Serializes the given value to JSON.
serializeToJsonString Serializes the given value to JSON.
serializeToPrettyJson Serializes the given value to a pretty printed JSON string.
writeJsonString Writes the given JSON object as a JSON string into the destination range.
writePrettyJsonString Writes the given JSON object as a prettified JSON string into the destination range.


Name Description
Json Represents a single JSON value.
JsonSerializer Serializer for a plain Json representation.
JsonStringSerializer Serializer for a range based plain JSON string representation.

Sönke Ludwig


© 2012-2015 RejectedSoftware e.K.


Subject to the terms of the MIT license, as written in the included LICENSE.txt file.