data у вас, это не JSON (что бы вы под этим не подразумевали), data у вас это массив строк ([String]).
Вообще JSON это строка, когда вы получаете JSON из сетевого ответа вы преобразуете эту строку в какой-то обьект (чаще всего Array или Dictionary), a за тем делаете итерации по этим объектам. Через строку невозможно сделать итерацию, если только по символам (Characters).
Если swift 4, создайте объекты:
struct Container: Decodable {
let messages : [Message]
}
struct Message : Decodable {
private enum CodingKeys : String, CodingKey {
case userId
case id
case title
case body
}
let userId, id: Int
let title, body: String
}
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
decoder.decode(Container.self, from: data)
// здесь data это Data