protocol KeyedDecodingContainerProtocol
Inheritance | View Protocol Hierarchy → |
---|---|
Associated Types | |
Import | import Swift |
Instance Variables
All the keys the Decoder
has for this container.
Different keyed containers from the same Decoder
may return different
keys here; it is possible to encode with multiple key types which are
not convertible to one another. This should report all keys present
which are convertible to the requested type.
Declaration
var allKeys: [Self.Key] { get }
The path of coding keys taken to get to this point in decoding.
Declaration
var codingPath: [CodingKey] { get }
Instance Methods
Returns a Boolean value indicating whether the decoder contains a value associated with the given key.
The value associated with key
may be a null value as appropriate for
the data format.
key
: The key to search for.
returns: Whether the Decoder
has an entry for the given key.
Declaration
func contains(_ key: Self.Key) -> Bool
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Bool.Type, forKey key: Self.Key) throws -> Bool
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Double.Type, forKey key: Self.Key) throws -> Double
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Float.Type, forKey key: Self.Key) throws -> Float
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Int.Type, forKey key: Self.Key) throws -> Int
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Int8.Type, forKey key: Self.Key) throws -> Int8
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Int16.Type, forKey key: Self.Key) throws -> Int16
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Int32.Type, forKey key: Self.Key) throws -> Int32
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: Int64.Type, forKey key: Self.Key) throws -> Int64
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: String.Type, forKey key: Self.Key) throws -> String
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: UInt.Type, forKey key: Self.Key) throws -> UInt
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: UInt8.Type, forKey key: Self.Key) throws -> UInt8
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: UInt16.Type, forKey key: Self.Key) throws -> UInt16
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: UInt32.Type, forKey key: Self.Key) throws -> UInt32
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode(_ type: UInt64.Type, forKey key: Self.Key) throws -> UInt64
Decodes a value of the given type for the given key.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A value of the requested type, if present for the given key
and convertible to the requested type.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func decode<T>(_ type: T.Type, forKey key: Self.Key) throws -> T where T : Decodable
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Bool.Type, forKey key: Self.Key) throws -> Bool?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Double.Type, forKey key: Self.Key) throws -> Double?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Float.Type, forKey key: Self.Key) throws -> Float?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Int.Type, forKey key: Self.Key) throws -> Int?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Int8.Type, forKey key: Self.Key) throws -> Int8?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Int16.Type, forKey key: Self.Key) throws -> Int16?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Int32.Type, forKey key: Self.Key) throws -> Int32?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: Int64.Type, forKey key: Self.Key) throws -> Int64?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: String.Type, forKey key: Self.Key) throws -> String?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: UInt.Type, forKey key: Self.Key) throws -> UInt?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: UInt8.Type, forKey key: Self.Key) throws -> UInt8?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: UInt16.Type, forKey key: Self.Key) throws -> UInt16?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: UInt32.Type, forKey key: Self.Key) throws -> UInt32?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent(_ type: UInt64.Type, forKey key: Self.Key) throws -> UInt64?
Decodes a value of the given type for the given key, if present.
This method returns nil
if the container does not have a value
associated with key
, or if the value is null. The difference between
these states can be distinguished with a contains(_:)
call.
type
: The type of value to decode.
key
: The key that the decoded value is associated with.
returns: A decoded value of the requested type, or nil
if the
Decoder
does not have an entry associated with the given key, or if
the value is a null value.
throws: DecodingError.typeMismatch
if the encountered encoded value
is not convertible to the requested type.
Declaration
func decodeIfPresent<T>(_ type: T.Type, forKey key: Self.Key) throws -> T? where T : Decodable
Decodes a null value for the given key.
key
: The key that the decoded value is associated with.
returns: Whether the encountered value was null.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
Declaration
func decodeNil(forKey key: Self.Key) throws -> Bool
Returns the data stored for the given key as represented in a container keyed by the given key type.
type
: The key type to use for the container.
key
: The key that the nested container is associated with.
returns: A keyed decoding container view into self
.
throws: DecodingError.typeMismatch
if the encountered stored value is
not a keyed container.
Declaration
func nestedContainer<NestedKey>(keyedBy type: NestedKey.Type, forKey key: Self.Key) throws -> KeyedDecodingContainer<NestedKey> where NestedKey : CodingKey
Returns the data stored for the given key as represented in an unkeyed container.
key
: The key that the nested container is associated with.
returns: An unkeyed decoding container view into self
.
throws: DecodingError.typeMismatch
if the encountered stored value is
not an unkeyed container.
Declaration
func nestedUnkeyedContainer(forKey key: Self.Key) throws -> UnkeyedDecodingContainer
Returns a Decoder
instance for decoding super
from the container
associated with the default super
key.
Equivalent to calling superDecoder(forKey:)
with
Key(stringValue: "super", intValue: 0)
.
returns: A new Decoder
to pass to super.init(from:)
.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the default super
key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the default super
key.
Declaration
func superDecoder() throws -> Decoder
Returns a Decoder
instance for decoding super
from the container
associated with the given key.
key
: The key to decode super
for.
returns: A new Decoder
to pass to super.init(from:)
.
throws: DecodingError.keyNotFound
if self
does not have an entry
for the given key.
throws: DecodingError.valueNotFound
if self
has a null entry for
the given key.
Declaration
func superDecoder(forKey key: Self.Key) throws -> Decoder
Default Implementations
Declaration
func decodeIfPresent(_ type: Bool.Type, forKey key: Self.Key) throws -> Bool?
Declaration
func decodeIfPresent(_ type: Double.Type, forKey key: Self.Key) throws -> Double?
Declaration
func decodeIfPresent(_ type: Float.Type, forKey key: Self.Key) throws -> Float?
Declaration
func decodeIfPresent(_ type: Int.Type, forKey key: Self.Key) throws -> Int?
Declaration
func decodeIfPresent(_ type: Int8.Type, forKey key: Self.Key) throws -> Int8?
Declaration
func decodeIfPresent(_ type: Int16.Type, forKey key: Self.Key) throws -> Int16?
Declaration
func decodeIfPresent(_ type: Int32.Type, forKey key: Self.Key) throws -> Int32?
Declaration
func decodeIfPresent(_ type: Int64.Type, forKey key: Self.Key) throws -> Int64?
Declaration
func decodeIfPresent(_ type: String.Type, forKey key: Self.Key) throws -> String?
Declaration
func decodeIfPresent(_ type: UInt.Type, forKey key: Self.Key) throws -> UInt?
Declaration
func decodeIfPresent(_ type: UInt8.Type, forKey key: Self.Key) throws -> UInt8?
Declaration
func decodeIfPresent(_ type: UInt16.Type, forKey key: Self.Key) throws -> UInt16?
Declaration
func decodeIfPresent(_ type: UInt32.Type, forKey key: Self.Key) throws -> UInt32?
Declaration
func decodeIfPresent(_ type: UInt64.Type, forKey key: Self.Key) throws -> UInt64?
Declaration
func decodeIfPresent<T>(_ type: T.Type, forKey key: Self.Key) throws -> T? where T : Decodable
A type that provides a view into a decoder's storage and is used to hold the encoded properties of a decodable type in a keyed manner.
Decoders should provide types conforming to
UnkeyedDecodingContainer
for their format.