Как можно представить JSON с помощью структуры Codable, если ключи не определены?
Я хотел бы представить следующий JSON в виде структуры, которая соответствует Codable
:
{
"trooper": {"name": "Trooper", "type": "alsatian"},
"spot": {"name": "Spot", "type": "labrador"},
"sniffles": {"name": "Sniffles", "type": "poodle"}
}
Список не является исчерпывающим, то есть в списке может быть любое количество собак.
{"name": "Sniffles", "type": "poodle"}
часть проста, и может быть сделано так:
struct Dog: Codable {
var name: String
var type: String
}
Но как насчет корневого уровня?
1 ответ
Вот что я искал:
let str = """
{
"trooper": {"name": "Trooper", "type": "alsatian"},
"spot": {"name": "Spot", "type": "labrador"},
"sniffles": {"name": "Sniffles", "type": "poodle"}
}
"""
struct Dog: Codable {
var name: String
var type: String
}
if let data = str.data(using: .utf8) {
do {
let decoder = JSONDecoder()
let dogs = try decoder.decode([String: Dog].self, from: data)
print(dogs)
} catch {
print(error)
}
}