В комментариях выше вы спросили, есть ли способ конвертировать ваш текст в JSON, чтобы вы могли использовать Codable с ним.
Вот хрупкий способ сделать это.Если не-JSON-файл представляет собой статический файл, связанный с вашим приложением, то это не должно быть проблемой.Если вы получаете эти данные из какого-либо веб-сервиса, не используйте их.
Считайте ваш файл в переменную.(Здесь я укажу это вручную.)
let string = """
[
{
id: 13,
start: "2018-01-12",
end: "2018-02-16",
name: "Fourth item with a super long name"
},
{
id: 14,
start: "2018-02-01",
end: "2018-02-02",
name: "Fifth item with a super long name"
}
]
"""
Regex заменяет пробелы, за которыми следуют слова и двоеточие (например: id:
), и заключает их в кавычки.
let json = string.replacingOccurrences(of: "\\s+(\\w+): ", with: "\"$1\": ", options: [.regularExpression])
Это выведет следующую строку:
[
{
"id": 13,
"start": "2018-01-12",
"end": "2018-02-16",
"name": "Fourth item with a super long name"
},
{
"id": 14,
"start": "2018-02-01",
"end": "2018-02-02",
"name": "Fifth item with a super long name"
}
]
После этого вы сможете декодировать строку как JSON, используя кодируемый.