---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Como trabalhar com codificadores e modelos codificáveis

# Como trabalhar com codificadores e modelos codificáveis {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 min. de leitura

A implementação do iOS do Mobile SDK fornece a funcionalidade adicional de codificadores e modelos codáveis.

## Enumeração do codificador {#mobsdk-ios-work-coder-codable_mod__section_fyx_4ly_3qb}

A enumeração do `Coder` envolve um `JSONEncoder` com um `JSONDecoder` que o acompanha para que ambos forneçam a mesma estratégia de codificação. Como muitas das APIs da estrutura do NowData que lidam com modelos codáveis dependem da codificação e decodificação do JSON, o `codificador` simplifica e padroniza a maneira de especificar codificadores e decodificadores. Normalmente, é suficiente usar o `codificador` padrão (`.default`), que codifica e decodifica datas usando a formatação de data `não ISO8601UTC`. O `DateFormatter.nonISO8601UTC` é um formatador de data estático fornecido pela estrutura NowData. Ela é responsável por codificar e decodificar datas que foram armazenadas pela plataforma ServiceNow no fuso horário UTC (GMT+0) e são usadas pela API da tabela no formato aaaa-MM-dd HH:MM:SS, usando um local e fuso horário do dispositivo em consideração.

Se a codificação JSON personalizada for necessária, como ao lidar com formatos de data específicos, você poderá criar um `codificador` personalizado fornecendo o `JSONEncoder` e o `JSONDecoder` personalizados como os tipos associados do codificador personalizado. O codificador e o decodificador devem usar a mesma estratégia de codificação.

Por exemplo:  

    let myEncoder = JSONEncoder()
    myEncoder.dateEncodingStrategy = .formatted(.nonISO8601UTC)
    let myDecoder = JSONDecoder()
    myDecoder.dateDecodingStrategy = .formatted(.nonISO8601UTC)

    let myCoder: Coder = .custom(myEncoder, myDecoder)

## Extensão codificável para estruturas aninhadas {#mobsdk-ios-work-coder-codable_mod__section_pvt_3ry_3qb}

A estrutura NowData fornece funcionalidade para decodificar estruturas aninhadas por caminho separado por pontos. Essa funcionalidade facilita o consumo de dados aninhados, eliminando a necessidade de usar a estrutura de wrapper e a decodificação JSON aninhada.

