---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Travailler avec des codeurs et des modèles codables

# Travailler avec des codeurs et des modèles codables {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute de lecture

L'implémentation iOS de la Mobile SDK fournit les fonctionnalités supplémentaires des codeurs et des modèles codables.

## Énumération des codeurs {#mobsdk-ios-work-coder-codable_mod__section_fyx_4ly_3qb}

L'énumération `Coder` englobe un `JSONEncoder` avec un `JSONDecoder` qui l'accompagne afin que les deux fournissent la même stratégie de codage. Étant donné que la plupart des API du cadre de travail 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 code et décode les dates à l'aide du formatage de date `nonISO8601UTC` , est suffisante. `DateFormatter.nonISO8601UTC` est un formateur de date statique fourni par le cadre de travail NowData. Il est responsable de l'encodage et du décodage des dates stockées par la ServiceNow plateforme dans le fuseau horaire UTC (GMT+0) et 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 requis, par exemple lors de la gestion de formats de date spécifiques, vous pouvez créer un `codeur` personnalisé en fournissant `JSONEncoder` et `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 {#mobsdk-ios-work-coder-codable_mod__section_pvt_3ry_3qb}

Le cadre de travail NowData fournit des fonctionnalités permettant de décoder les structures imbriquées par chemin d'accès séparé 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é.

