dackson 0.2.1

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:

Manual usage
Put the following dependency into your project's dependences section:

dackson

Build Status

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

Installation

Dackson is published on the DUB package registry.

Deserializing

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")

Serializing

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
Authors:
  • Lee Avital
Dependencies:
none
Versions:
0.2.1 2022-Sep-24
~master 2023-Sep-09
Show all 2 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 5 downloads this month

  • 113 downloads total

Score:
0.2
Short URL:
dackson.dub.pm