Arbeiten Sie mit Codierern und codierbaren Modellen
Die iOS-Implementierung von Mobile SDK bietet die zusätzliche Funktionalität von Codierern und codierbaren Modellen.
Coder-Aufzählung
Die Coder -Enumeration umschließt einen JSONEncoder mit einem zugehörigen JSONDecoder, sodass beide dieselbe Codierungsstrategie bereitstellen. Da viele der NowData-Framework-APIs, die codierbare Modelle verarbeiten, auf der Codierung und Decodierung in JSON basieren, vereinfacht und standardisiert der Coder die Angabe von Encodern und Decoder. Normalerweise reicht es aus, den Standardcodierer ( .default ) zu verwenden, der Datumsangaben mithilfe einer nicht ISO8601UTC-Datumsformatierung codiert und decodiert. DateFormatter.nonISO8601UTC ist ein statischer Datumsformatierer, der vom NowData-Framework bereitgestellt wird. Es ist für die Codierung und Decodierung von Daten verantwortlich, die von der Plattform ServiceNow in der UTC-Zeitzone (GMT+0) gespeichert wurden und von der Tabellen -API im Format jjjj-MM-tt HH:MM:SS verwendet werden, indem ein berücksichtigt das Gebietsschema und die Zeitzone des Geräts.
Wenn anwenderdefinierte JSON-Codierung erforderlich ist, z. B. bei der Verarbeitung bestimmter Datumsformate, können Sie einen anwenderdefinierten Codierer erstellen, indem Sie den anwenderdefinierten JSONEncoderundJSONDecoder als zugeordnete Typen des anwenderdefinierten Codierers angeben. Sowohl der Encoder als auch der Decoder müssen dieselbe Codierungsstrategie verwenden.
Beispiel:
let myEncoder = JSONEncoder()
myEncoder.dateEncodingStrategy = .formatted(.nonISO8601UTC)
let myDecoder = JSONDecoder()
myDecoder.dateDecodingStrategy = .formatted(.nonISO8601UTC)
let myCoder: Coder = .custom(myEncoder, myDecoder)Codierbare Erweiterung für geschachtelte Strukturen
Das NowData-Framework bietet Funktionen zum Decodieren geschachtelter Strukturen anhand eines durch Punkte getrennten Pfads. Diese Funktionalität erleichtert die Verwendung geschachtelter Daten, indem die Notwendigkeit der Verwendung einer Wrapperstruktur und einer geschachtelten JSON-Decodierung entfällt.