Travailler avec des codeurs et des modèles codables

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 1 minute de lecture
  • L’implémentation iOS de la Mobile SDK fournit les fonctionnalités supplémentaires des codeurs et des modèles Codable.

    Énumération des codeurs

    L’énumération Coder enveloppe un JSONEncoder avec un JSONDecoder qui l’accompagne afin que les deux fournissent la même stratégie de codage. Étant donné que de nombreuses API du framework NowData qui gèrent les modèles codables reposent sur le codage et le décodage à partir de JSON, le codeur simplifie et normalise la façon de spécifier les encodeurs et les décodeurs. En règle générale, l’utilisation du codeur par défaut (.default), qui encode et décode les dates en utilisant le formatage de date nonISO8601UTC , est suffisante. Le formateur de date.nonISO8601UTC est un formateur de date statique fourni par le framework NowData. Il est responsable de l’encodage et du décodage des dates qui ont été stockées par la ServiceNow plateforme dans le fuseau horaire UTC (GMT+0) et qui sont utilisées par l’API de table au format aaaa-MM-jj HH :MM :SS, en tenant compte des paramètres régionaux et du fuseau horaire d’un appareil.

    Si un codage JSON personnalisé est nécessaire, par exemple lors de la gestion de formats de date spécifiques, vous pouvez créer un codeur personnalisé en fournissant le JSONEncoder personnalisé et le JSONDecoder personnalisés comme types associés au codeur personnalisé. L’encodeur et le décodeur doivent utiliser la même stratégie de codage.

    Par exemple :

    let myEncoder = JSONEncoder()
    myEncoder.dateEncodingStrategy = .formatted(.nonISO8601UTC)
    let myDecoder = JSONDecoder()
    myDecoder.dateDecodingStrategy = .formatted(.nonISO8601UTC)
    
    let myCoder: Coder = .custom(myEncoder, myDecoder)

    Extension codable pour structures imbriquées

    Le framework NowData fournit une fonctionnalité permettant de décoder les structures imbriquées par des chemins séparés par des points. Cette fonctionnalité facilite l’utilisation des données imbriquées en supprimant la nécessité d’utiliser une structure wrapper et un décodage JSON imbriqué.