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 (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;
//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
|
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. |
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-2015 RejectedSoftware e.K.
License
Subject to the terms of the MIT license, as written in the included LICENSE.txt file.