dackson ~master
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
Dackson is a loose port Java's Jackson library for serializing and deserializing JSON data into user-defined data structures.
Dackson, as of writing, should be entirely attributed to https://github.com/leeavital - it was forked and slightly updated to support floats and adhere to breaking language changes.
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
- Registered by Carter
- ~master released a year ago
- zkxjzmswkwl/dackson
- BSD
- Copyright © 2017, Lee Avital
- Authors:
- Dependencies:
- none
- Versions:
-
0.2.1 2022-Sep-24 ~master 2023-Sep-09 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
5 downloads this month
-
113 downloads total
-
- Score:
- 0.2
- Short URL:
- dackson.dub.pm