코더 및 코딩 가능 모델 작업
의 iOS 구현은 Mobile SDK 코더 및 코딩 가능한 모델의 추가 기능을 제공합니다.
코더 열거
Coder 열거형은 JSONEncoder를 함께 제공되는 JSONDecoder로 래핑하여 둘 다 동일한 코딩 전략을 제공하도록 합니다. 코딩 가능 모델을 처리하는 많은 NowData 프레임워크 API가 JSON의 코딩 및 디코딩에 의존하기 때문에 Coder 는 인코더 및 디코더를 지정하는 방법을 단순화하고 표준화합니다. 일반적으로 nonISO8601UTC 날짜 형식을 사용하여 날짜를 인코딩 및 디코딩하는 기본 Coder(.default)를 사용하는 것으로 충분합니다. DateFormatter.nonISO8601UTC는 NowData 프레임워크에서 제공하는 정적 날짜 포맷터입니다. 플랫폼이 UTC(GMT+0) 시간대로 저장 ServiceNow 한 날짜를 인코딩 및 디코딩하는 작업을 담당하며, 기기의 로캘과 시간대를 고려하여 Table API에서 yyyy-MM-dd HH:MM:SS 형식으로 사용됩니다.
특정 날짜 형식을 처리할 때와 같이 사용자 지정 JSON 코딩이 필요한 경우 사용자 지정 JSONEncoder 및 JSONDecoder를 사용자 지정 Coder의 연결된 유형으로 제공하여 사용자 지정 Coder를 만들 수 있습니다. 인코더와 디코더는 모두 동일한 코딩 전략을 사용해야 합니다.
예:
let myEncoder = JSONEncoder()
myEncoder.dateEncodingStrategy = .formatted(.nonISO8601UTC)
let myDecoder = JSONDecoder()
myDecoder.dateDecodingStrategy = .formatted(.nonISO8601UTC)
let myCoder: Coder = .custom(myEncoder, myDecoder)중첩 구조에 대한 코딩 가능 확장
NowData 프레임워크는 점으로 구분된 경로로 중첩된 구조를 디코딩하는 기능을 제공합니다. 이 기능을 사용하면 래퍼 구조와 중첩된 JSON 디코딩을 사용할 필요가 없으므로 중첩된 데이터를 더 쉽게 사용할 수 있습니다.