AnyDecodable

public struct AnyDecodable : Decodable
extension AnyDecodable: Equatable
extension AnyDecodable: CustomStringConvertible
extension AnyDecodable: CustomDebugStringConvertible

A type-erased Decodable value.

The AnyDecodable type forwards decoding responsibilities to an underlying value, hiding its specific underlying type.

You can decode mixed-type values in dictionaries and other collections that require Decodable conformance by declaring their contained type to be AnyDecodable:

let json = """
{
    "boolean": true,
    "integer": 1,
    "double": 3.14159265358979323846,
    "string": "string",
    "array": [1, 2, 3],
    "nested": {
        "a": "alpha",
        "b": "bravo",
        "c": "charlie"
    }
}
""".data(using: .utf8)!

let decoder = JSONDecoder()
let dictionary = try! decoder.decode([String: AnyCodable].self, from: json)
  • Declaration

    Swift

    public static func == (lhs: AnyDecodable, rhs: AnyDecodable) -> Bool
  • Declaration

    Swift

    public var description: String { get }
  • Declaration

    Swift

    public var debugDescription: String { get }