코더 및 코딩 가능 모델 작업

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기1분
  • 의 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 코딩이 필요한 경우 사용자 지정 JSONEncoderJSONDecoder를 사용자 지정 Coder의 연결된 유형으로 제공하여 사용자 지정 Coder를 만들 수 있습니다. 인코더와 디코더는 모두 동일한 코딩 전략을 사용해야 합니다.

    예:

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

    중첩 구조에 대한 코딩 가능 확장

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