Во время декодирования ClassA, которое соответствует Decodable, я хотел бы получить значение одного из свойств для пользовательского декодирования.Как мне этого добиться?
class ClassA: Decodable {
let title: String?
let data: MyCustomNotDecodableNSObject?
private enum CodingKeys: String, CodingKey {
case title
case data
}
required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
title = try? container.decode(String.self, forKey: .title)
let dataRawValue = ? // somehow retrieve the raw value that coresponds to the key "data" (JSON string)
let theData = MyCustomNotDecodableNSObject(rawData: dataRawValue)
data = theData
}
}
Пример синтаксического анализа JSON:
{
"classA" : {
"title" = "a title"
"data" : {
"key1" : "value 1",
"key2" : "value 2",
"key3" : "value 3"
}
}
Я хочу получить следующее:
"key1" : "value 1",
"key2" : "value 2",
"key3" : "value 3"
Пожалуйста, не предлагайте соответствие MyCustomNotDecodableNSObjectДекодируемый протокол.Этот класс нельзя изменить.