у вас должна быть идентичная структура, чтобы декодировать ответ в объект, и в качестве его JSON его [Key: Value] каждый ключ является строкой, которая указывает, что такое значение, поэтому значение может быть массивом илимассив массивов или другой объект, даже значение может быть любым в вашем случае
{
"kind": "youtubeAnalytics#resultTable",
"columnHeaders": [
{
"name": "views",
"columnType": "METRIC",
"dataType": "INTEGER"
}
],
"rows": [
[
6
]
]
}
первый индекс, (types: youtubeAnalytics # resultTable), поэтому его следующий индекс String: String равен (columnHeader:), поэтому егоСтрока: этот объект также является ключом: значением, который имеет ключи name, columnType, DataType, поэтому окончательное значение того, как декодировать этот конкретный ответ, простое, как показано ниже, и оно даст вам представление о том, как думать о JSON и о декодировании.в будущем, надеюсь,
struct ColumnHeader: Codable {
var name: String?
var columnType: String?
var dataType: String?
}
struct response: Codable {
var kind: String?
var columnHeaders: [ColumnHeader?]
var rows: [[Int]?]
}
// after we have the data and decode it you can access the object easily as the following,
let obj = ColumnHeader(name: "test", columnType: "test", dataType: "test")
let resp = response(kind: "test2", columnHeaders: [obj], rows: [[2,4],[4,5]])
resp.kind
resp.columnHeaders[0]?.name