Swiftpack.co - Package - elegantchaos/DictionaryCoding


This is an implementation of Swift's Encoder/Decoder protocols which uses NSDictionary as its underlying container mechanism.

It allows you to take a native swift class or struct that confirms to the Codable protocol and convert it to, or initialise it from, a dictionary.

A lot of the code is actually taken from the Swift Foundation library's own JSONEncoder and JSONDecoder classes.

It turns out that those class actually work by using NSDictionary as an intermediate step between JSON and the native type to be encoded/decoded. Unfortunately the underlying NSDictionary support isn't exposed by Foundation, which is why I've done so here.

See this blog post for a bit more detail!

Build Instructions

At the moment this module is best built using the Swift Package Manager with swift build.

The unit tests can be run with swift test -Xswiftc -target -Xswiftc x86_64-apple-macosx10.12.

An Xcode project can be generated with swift package generate-xcodeproj.

Please file issues (or even better, pull requests) for support for other build systems.


Stars: 73
Help us keep the lights on


Used By

Total: 0


1.0.6 - Jan 15, 2019

Fixed a minor warning that Cocoapods was complaining about.

1.0.5 - Jan 14, 2019

Updated podspec version no.

1.0.4 - Jan 11, 2019

Enables iOS support for the podspec. Uses compactMap when available.

1.0.3 - Mar 12, 2018

Adds a podspec for use with Cocoapods.

1.0.2 - Feb 22, 2018

More flexible handling of default values. Better support for decoding URL and UUID items.