Module vibe.data.json

JSON serialization and value handling.

This module provides the Json struct for reading, writing and manipulating JSON values in a seamless, JavaScript like way. De(serialization) of arbitrary D types is also supported.

Examples

void manipulateJson(Json j)
{
	// object members can be accessed using member syntax, just like in JavaScript
	j = Json.emptyObject;
	j.name = "Example";
	j.id = 1;

	// 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());
}

Functions

Name Description
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.
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.

Structs

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.

Authors

Sönke Ludwig

Copyright

© 2012-2013 RejectedSoftware e.K.

License

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