Module vibe.data.json
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.
Example
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 (key, value; j .byKeyValue)
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;
//j.name = "Example";
//j.id = 1;
}
Example
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();
Functions
Name | Description |
---|---|
convertJsonToASCII(json)
|
Helper function that escapes all Unicode characters in a JSON string. |
deserializeJson(dst, src)
|
Deserializes a JSON value into the destination variable. |
parseJson(range, line, filename)
|
Parses the given range as a JSON string and returns the corresponding Json object. |
parseJsonString(str, filename)
|
Parses the given JSON string and returns the corresponding Json object. |
serializeToJson(value)
|
Serializes the given value to JSON. |
serializeToJsonString(value)
|
Serializes the given value to JSON. |
serializeToPrettyJson(destination, value)
|
Serializes the given value to a pretty printed JSON string. |
writeJsonString(dst, json, level)
|
Writes the given JSON object as a JSON string into the destination range. |
writePrettyJsonString(dst, json, level)
|
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. |