An API changed its JSON, a field named contactMedium, that was coming in form of a Array changed to an Object:
was like this :
{
"contactMedium": [
{
"type": "EMAIL",
"characteristic": {
"emailAddress": "ibenedit"
}
}
],
}
become like this :
{
"contactMedium": {
"characteristics": {
"emailAddress": "ibeneditobr"
},
"type": "EMAIL"
},
}
My question is, how I implement the init's struct ("init(from decoder: Decoder) throws {") , to convert from object to Array ?
In my struct I tried to change:
from : public var contactMedium: [ContactMedium]?
to : public var contactMedium: ContactMedium?
But app crashes in various places, because of use the array's methods like filter.
I would suggest you change your code to not use an array now the API has changed. Trying to keep this code will make your app more difficult to maintain. BTW you could create a dummy private var that has a codingKey with this property and set the contactMedium to be an computed array var returning the object.