バックエンドが次のようなオブジェクトを返す (迷惑な) 状況があります。
{
"user": {
"name": [
"John"
],
"familyName": [
"Johnson"
]
}
}
ここで、各プロパティは、最初の要素として文字列を保持する配列です。私のデータ モデルstruct
では、各プロパティを配列として宣言できましたが、それは実際には醜いものです。私は自分のモデルをそのようにしたいと思います:
struct User: Codable {
var user: String
var familyName: String
}
ただし、これはもちろん、型が一致しないため、エンコード/デコードに失敗します。これまで、オブジェクトとプロパティObjectMapper
を提供するライブラリを使用してきました。これにより、プロパティを型として宣言し、モデルメソッドでこの関数を介して各値を割り当てることができました。Map
currentValue
String
init
extension Map {
public func firstFromArray<T>(key: String) -> T? {
if let array = self[key].currentValue as? [T] {
return array.first
}
return self[key].currentValue as? T
}
}
しかしCodable
、私はアプローチに変換しているので、そのようなマッピングを行う方法がわかりません。何か案は?