По существу, для доступа к вложенной переменной JSON
block
Мне пришлось декодировать исходное сообщение JSON
do{
guard let data = inital_msg.data(using: .utf8) else { return }
let incomingBlock = try JSONDecoder().decode(IncomingBlock.self, from: data)
catch ...{}
и значение block
приведено к String в модели.
struct IncomingBlock: Decodable {
var account: String
var hash: String
var block: String
}
После этого я расшифровал поле начальных сообщений block
еще раз, вот так
// Второй JSON
let json = incomingBlock.block.data(using: .utf8)!
наконец, с моделью разделенных блоков:
struct BlockMeta: Decodable {
var type: String
var previous: String
var link: String
var link_as_account: String
var representative: String
var account: String
var balance: String
var work: String
var signature: String
}
Я мог получить доступ к полям
let block = try JSONDecoder().decode(BlockMeta.self, from: json)
block.balance //returns "320000000000000000000000000"