Прежде всего вопрос должен быть Как получить доступ к массиву внутри структуры ?
Во-вторых, используйте CodingKeys
, только если члены структуры и ключи не совпадают, например, с lowerCamelCase именами переменных.
Треть всех объявляет необязательными только члены структур, чьи ключевые эквиваленты могут отсутствовать
struct TransactionsObject: Codable {
let userInitiatedTransactions: [UserEdTransaction]
let userReceivedTransactions: [UserEdTransaction]
enum CodingKeys: String, CodingKey {
case userInitiatedTransactions = "UserInitiatedTransactions"
case userReceivedTransactions = "UserReceivedTransactions"
}
}
struct UserEdTransaction: Codable { // no CodingKeys !!
let transactionCode: Int
let transactionDate: String
let transactionType: String
let transactionTime: String
let transactionAmount: String
let transactionTo: String
let transactionFrom: String
}
Ошибка возникает из-за того, что userInitiatedTransactions
является массивом. Вам нужна подписка на индекс
print(transactionsObject.userInitiatedTransactions[0]) // can crash if the array is empty
или повторный цикл
for transaction in transactionsObject.userInitiatedTransactions {
print(transaction.transactionCode)
}