코더 및 Codable 모델 작업

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기1분
  • Mobile SDK iOS 구현은 코더 및 Codable 모델의 추가 기능을 제공합니다.

    Coder 열거형

    Coder 열거형은 JSONEncoder를 함께 제공되는 JSONDecoder로 래핑하여 둘 다 동일한 코딩 전략을 제공하도록 합니다. 코드 가능 모델을 처리하는 많은 NowData 프레임워크 API는 JSON의 코딩 및 디코딩에 의존하므로 Coder 는 인코더 및 디코더를 지정하는 방법을 단순화하고 표준화합니다. 일반적으로 ISO8601UTC가 아닌 날짜 서식을 사용하여 날짜를 인코딩 및 디코딩하는 기본 Coder(.default)를 사용하는 것으로 충분합니다. DateFormatter.nonISO8601UTC는 NowData 프레임워크에서 제공하는 정적 날짜 포맷터입니다. UTC(GMT+0) 표준 시간대로 플랫폼에 저장된 ServiceNow 날짜를 인코딩 및 디코딩하는 작업을 담당하며, 디바이스의 로캘 및 표준 시간대를 고려하여 테이블 API에서 yyyy-MM-dd HH:MM:SS 형식으로 사용됩니다.

    특정 날짜 형식을 처리할 때와 같이 사용자 지정 JSON 코딩이 필요한 경우 사용자 지정 Coder의 관련 유형으로 사용자 지정 JSONEncoderJSONDecoder를 제공하여 사용자 지정 Coder를 생성할 수 있습니다. 인코더와 디코더는 모두 동일한 코딩 전략을 사용해야 합니다.

    예:

    let myEncoder = JSONEncoder()
    myEncoder.dateEncodingStrategy = .formatted(.nonISO8601UTC)
    let myDecoder = JSONDecoder()
    myDecoder.dateDecodingStrategy = .formatted(.nonISO8601UTC)
    
    let myCoder: Coder = .custom(myEncoder, myDecoder)

    중첩된 구조에 대한 코드화 가능 확장

    NowData 프레임워크는 점으로 구분된 경로를 기준으로 중첩된 구조를 디코딩하는 기능을 제공합니다. 이 기능을 사용하면 래퍼 구조 및 중첩된 JSON 디코딩을 사용할 필요가 없으므로 중첩된 데이터를 더 쉽게 사용할 수 있습니다.