Я анализирую плохо спроектированную структуру JSON, в которой я могу ожидать, что значения будут повторно использоваться в качестве ключей, указывающих на дальнейшие данные.Нечто подобное
{"modificationDate" : "..."
"type" : "...",
"version" : 2,
"manufacturer": "<WILDCARD-ID>"
"<WILDCARD-ID>": { /* known structure */ } }
WILDCARD-ID
может быть практически любым во время выполнения, поэтому я не могу сопоставить его с полем в структуре где-то во время компиляции.Но как только я разыменую это поле, его значение имеет известную структуру, и в этот момент я могу следовать обычной процедуре сопоставления JSON с struct
с.
Я пойду по этому пути
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any]
let manDict = json["manufacturer"]
let data = NSKeyedArchiver.archivedData(withRootObject: manDict)
// now you have data!
но это кажется очень сложным, что заставляет меня думать, что, может быть, есть более чистый способ сделать это?