Trabalhe com codificadores e modelos codificáveis
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.