Trabalhe com codificadores e modelos codificáveis

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 1 min. de leitura
  • A implementação iOS do Mobile SDK Fornece a funcionalidade adicional de codificadores e modelos codificáveis.

    Enumeração do codificador

    . Codificador enumeração envolve um JSONEncoder com um acompanhamento JSONDecoder para que ambos forneçam a mesma estratégia de codificação. Como muitas das APIs da estrutura NowData que lidam com modelos codificáveis dependem de codificação e decodificação de JSON, o. Codificador simplifica e padroniza a maneira de especificar codificadores e decodificadores. Usando o padrão Codificador ( .padrão ), que codifica e decodifica datas usando Não ISO8601UTC a formatação de data é suficiente. . DateFormatter.nonISO8601UTC É um formatador de data estático fornecido pela estrutura NowData. É responsável pela codificação e decodificação de datas que foram armazenadas pelo ServiceNow No fuso horário UTC (GMT-0) e são usados pelo Tabela API em aaaa-MM-dd HH:MM:SS levando em consideração a localidade e o fuso horário de um dispositivo.

    Se a codificação JSON personalizada for necessária, como ao lidar com formatos de data específicos, você poderá criar um personalizado Codificador fornecendo o personalizado JSONEncoder e. JSONDecoder 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

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