dackson 0.1.0

A library for marshalling/unmarshalling JSON into idiomatic D data structures.

To use this package, run the following command in your project's root directory:


Dackson is a loose port Java's Jackson library for serializing and deserializing JSON data into user-defined data structures.


Dub is not yet included on the DUB package registry. Users must clone this repository and add it as a local repository:

git clone git@github.com:leeavital/dackson.git
cd dackson
dub add-local $PWD


To deserialize a datatype, you must first define it! Dackson will work with any mutable struct, though you can add additional JsonProperty annotations if the D field name differs from the actual field name.

import dackson;

struct User {
  @JsonProperty("user_id") long userId;
  string username;

Then use the decodeJson function to decode the JSON (in string form) into a D type.

string json = `{"user_id": 1234, "username": "John Smith"}`;
User u = decodeJson!(User)(json);  // User(1234, "John Smith")

Or use unified function call syntax:

string json = `{"user_id": 1234, "username": "John Smith"}`;
User u = json.decodeJson!User;  // User(1234, "John Smith")


Encode using the encodeJson function. The JsonProperty annotations will be respected.

import dackson;

struct User {
  @JsonProperty("user_id") long userId;
  string username;

string encoded = encodeJson(User(1234, "John Smith")); // {"user_id":1234,"username":"John Smith"}

Future Work

  • Support for classes and immutable structures.
  • @JsonIgnore annotations
  • Special behavior for missing/null values
  • Lee Avital
0.2.0 2018-Jul-18
0.1.2 2018-Jan-14
0.1.1 2017-Dec-27
0.1.0 2017-Dec-26
~master 2018-Jul-18
Show all 8 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 23 downloads total

Short URL: