Я создаю простой Json Parser, который работает так: у меня есть класс JsonData, который содержит Anyobject в качестве данных. Когда я использую jsonData["key"] он возвращает JsonData, чтобы я мог связать jsonData["key"]["key2"] и т. д.
Мой вопрос в том, как я могу реализовать этот класс, чтобы я мог передать его, скажем, String:
jsonData["key"] как String без использования некоторых обходных путей, таких как
jsonData["key"].data как строка
Код:
class JsonData:CustomStringConvertible{
let data:AnyObject
var description: String{
get{
return "\(data)"
}
}
init(_ data: Data) {
self.data = try! JSONSerialization.jsonObject(with: data, options: []) as! [[String:AnyObject]]
}
init(_ data: AnyObject) {
self.data = data
}
subscript(key:String) -> JsonData{
let newData = data as! [String:AnyObject]
let test = newData[key]!
return JsonData(test)
}
subscript(index:Int) ->JsonData{
let newData = data[index]!
return JsonData(newData)
}
}