Dictionary

From TealiumPrismCore:
extension Dictionary: DataInput where Key == String, Value == DataInput
extension Dictionary: DataInputConvertible where Key == String, Value: DataInputConvertible
public extension Dictionary where Key == String
public extension Dictionary where Key == String, Value == DataInput?
extension Dictionary: DataItemExtractor, JSONPathExtractable where Key == String, Value == DataItem

Available where Key == String, Value: DataInputConvertible

Available where Key == String

  • asDataDictionary() From TealiumPrismCore

    Converts a dictionary of optional DataInput-conforming values dictionary to [String: DataItem], preserving all keys by replacing each nil value with .null (i.e. NSNull).

    Use this when you want to keep nil values as explicit nulls in a DataObject, for example:

    let attrs: [String: String?] = ["name": "Alice", "email": nil]
    let dataObject: DataObject = ["user": attrs.asDataDictionary()]
    // → ["user": ["name": "Alice", "email": NSNull()]]
    

    If you want to drop keys with nil values instead, use compactMapValues:

    let dataObject: DataObject = ["user": attrs.compactMapValues { $0 }]
    // → ["user": ["name": "Alice"]]
    

    Declaration

    Swift

    func asDataDictionary<T>() -> [String : DataItem] where Value == T?, T : DataInput

Available where Key == String, Value == DataInput?

  • asDataDictionary() From TealiumPrismCore

    Converts a [String: DataInput?] (existential optional) dictionary to [String: DataItem], preserving all keys by replacing each nil value with .null (i.e. NSNull).

    Use this when you want to keep nil values as explicit nulls in a DataObject, for example:

    let attrs: [String: DataInput?] = ["name": "Alice", "email": nil, "age": 25]
    let dataObject: DataObject = ["user": attrs.asDataDictionary()]
    // → ["user": ["name": "Alice", "email": NSNull(), "age": 25]]
    

    If you want to drop keys with nil values instead, use compactMapValues:

    let dataObject: DataObject = ["user": attrs.compactMapValues { $0 }]
    // → ["user": ["name": "Alice", "age": 25]]
    

    Declaration

    Swift

    func asDataDictionary() -> [String : DataItem]

Available where Key == String, Value == DataItem