Проблема в том, что ваш объект в dataArray - это просто массив строк, а не объект со свойствами. Поэтому, если вы хотите декодировать его в свой пользовательский класс, отредактируйте свой dataArray следующим образом:
[{"teamName":"Arsenal",
"image":"Arsenal",
"nextMatch":"in 2 days",
"matches":[{"oppositeTeam":"teamName",
"matchTimings":"121212",
"matchId":"ID 213432"},
{"oppositeTeam":"teamName",
"matchTimings":"121212",
"matchId":"ID 213432"}],
"fixtures": {"oppositeTeam":"teamName",
"oppositeTeamScore":"7",
"homeTeamScore":"4", /* I renamed this with small first letter*/
"homeTeamCards":"True", /* I renamed this with small first letter*/
"oppositeTeamCards":"false",
"fixtureId":"ID 213432”}
}
]
Используйте кодируемый протокол на ваших уроках
class TeamData: Codable {
var teamName : String
var image : String
var nextMatch : String
var matches : [Match]
var fixtures : Fixtures
}
class Match: Codable {
var oppositeTeam : String
var matchTimings : String
var matchId : String
}
также не забудьте создать класс Fixtures
class Fixtures: Codable {
var oppositeTeam : String
var oppositeTeamScore : String
var homeTeamScore : String
var homeTeamCards : String
var oppositeTeamCards : String
var fixtureId : String
}
и теперь где-нибудь, где у вас есть dataArray, декодируйте этот массив JSON с помощью JSON декодера
let teamDataArray = JSONDecoder().decode([TeamData].self, from: dataArray)
Теперь, если вам нужно, например, получить первый объект TeamData и получить его изображение, скажем
teamDataArray[0].image /* This value should be Arsenal */