Мне нужно проанализировать JSOG в моем приложении для iOS на swift. Я пытаюсь написать десериализатор самостоятельно, но я не знаю, как работать с такими абстрактными значениями. У меня есть что-то вроде этого, но это не сработало.
func parseElemJsog(refs: inout [String: Any], elem: Any) -> Any {
if elem is [Any] {
for subelem in elem as! [Any] {
parseElemJsog(refs: &refs, elem: subelem)
}
} else if elem is [String : Any] {
var dict = elem as! [String : Any]
if dict["@ref"] == nil {
refs[dict["@id"] as! String] = dict
dict.removeValue(forKey: "@id")
for subelem in dict {
if subelem.key != "@id" {
parseElemJsog(refs: &refs, elem: subelem.value, resutl: &resutl)
}
}
} else {
let refId = dict["@ref"] as! String
for (key, value) in refs[refId] as! [String: Any] {
dict[key] = value
}
}
} else {
}
}
И я не могу использовать JSONDecoder
, потому что у меня нет какой-либо модели данных. Может кто-нибудь посоветовать мне некоторые библиотеки или метод для анализа jsog? Я не знаю, что мне делать. Спасибо за внимание.
Я хочу разобрать что-то вроде этого:
[
{
"@id": "1",
"name": "Sally",
"secretSanta": {
"@id": "2",
"name": "Bob",
"secretSanta": {
"@id": "3",
"name": "Fred",
"secretSanta": { "@ref": "1" }
}
}
},
{ "@ref": "2" },
{ "@ref": "3" }
]