Arbeiten Sie mit Codierern und codierbaren Modellen

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Die iOS-Implementierung von Mobile SDK bietet die zusätzlichen Funktionen von Codierern und codierbaren Modellen.

    Coder-Aufzählung

    Die Coder -Aufzählung umschließt einen JSONEncoder mit einem zugehörigen JSONDecoder, sodass beide dieselbe Codierungsstrategie bereitstellen. Da viele der APIs des NowData -Frameworks, die codierbare Modelle verarbeiten, auf der Codierung und Decodierung von JSON basieren, vereinfacht und standardisiert der Codierer die Angabe von Codierern und Decodierern. In der Regel reicht es aus, den Standardcodierer ( .default ) zu verwenden, der Datumsangaben mit einer Nicht-ISO8601UTC-Datumsformatierung codiert und decodiert. DateFormatter.nonISO8601UTC ist ein statischer Datumsformatierer, der vom NowData-Framework bereitgestellt wird. Sie ist für die Codierung und Decodierung von Datumsangaben 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 Gebietsschema und Zeitzone des Geräts berücksichtigen.

    Wenn eine benutzerdefinierte JSON-Codierung erforderlich ist, z. B. bei der Verarbeitung bestimmter Datumsformate, können Sie einen benutzerdefinierten Codierer erstellen, indem Sie den benutzerdefinierten JSONEncoder und JSONDecoder als zugeordnete Typen des benutzerdefinierten 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 verschachtelte Strukturen

    Das NowData-Framework bietet Funktionen zum Decodieren verschachtelter Strukturen durch einen durch Punkte getrennten Pfad. Diese Funktionalität erleichtert die Verarbeitung verschachtelter Daten, indem die Notwendigkeit der Verwendung einer Wrapper-Struktur und der verschachtelten JSON-Decodierung entfällt.