Serialized is a library that automates encoding and decoding of D data types to JSON and XML.
It heavily relies on boilerplate
to extract information about struct/class type layouts; as such
automatic encoding/decoding can only be used with types that have a boilerplate
constructor.
This library forks from Funkwerk's internal Utilities library. Hence while it is extensively tested, it
also contains a moderate amount of legacy code. The important packages for automatic encoding and decoding are
text.xml/json.Encode/Decode
.
Serialized uses dxml
for XML encoding/decoding and stdx_data_json
for JSON encoding/decoding.
import text.xml.Xml;
@(Xml.Element("Root"))
struct Element
{
@(Xml.Attribute("attribute"))
string attribute;
mixin(GenerateThis);
}
...
import text.xml.Decode;
const xmlText = `<Root attribute="Hello World"/>`;
const value = decode!Element(xmlText);
assert(value == Element("Hello World"));
import text.xml.Xml;
struct Element
{
string attribute;
mixin(GenerateThis);
}
...
import text.json.Decode;
const jsonText = `{ "attribute": "Hello World" }`;
const value = decode!Element(jsonText);
assert(value == Element("Hello World"));
This project is made available under the Boost Software License 1.0.