Мне нужно "реплицировать" entiry, который возвращается из службы удаленного веб-API в JSON. Это выглядит так:
{
"field1": "some_id",
"entity_name" = "Entity1"
"field2": "some name",
"details1": [{
"field1": 11,
"field2": "some value",
"data": {
"key1": "value1",
"key2": "value2",
"key3": "value3",
// any other, unknown at compile time keys
}
}],
"details2": {
"field1": 13,
"field2": "some value2"
}
}
Здесь моя попытка:
struct Entity1 {
struct Details1 {
let field1: UInt32
let field2: String
let data: [String: String]
}
struct Details2 {
let field1: UInt32
let field2: String
}
let field1: String
static let entityName = "Entity1"
let field2: String
let details1: [Details1]
let details2: Details2
}
- Это хорошая идея использовать структуры вместо классов для такой цели Как мой?
- Можно ли каким-либо образом определить вложенную структуру или класс, скажем, Details1 и создать переменную в одно и то же время?
Вот так:
//doesn't compile
struct Entity1 {
let details1: [Details1 {
let field1: UInt32
let field2: String
let data: [String: String]
}]