Swiftpack.co - elegantchaos/DictionaryCoding as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by elegantchaos.
elegantchaos/DictionaryCoding 1.0.9
Swift Decoder/Encoder which converts to/from dictionaries.
⭐️ 160
🕓 1 week ago
iOS macOS tvOS
.package(url: "https://github.com/elegantchaos/DictionaryCoding.git", from: "1.0.9")

Test results Latest release swift 5.0 shield swift dev shield Platforms: macOS, iOS, tvOS, watchOS

Test results Latest release Swift 5.0 Platforms: iOS, macOS, tvOS, watchOS, Linux


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.

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

A CocoaPods .podspec file is included. I don't use CocoaPods myself though, so I can't be entirely sure that I haven't broken something (or forgotten to update something).

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


Stars: 160
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

2 years ago

No code changes - just tweaked the README and Tests.yml.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics