私はそのように機能する単純な Json パーサーを作成しています: Anyobject をデータとして含む JsonData クラスがあります。jsonData["key"] を使用すると、JsonData が返され、jsonData["key"]["key2"] などをチェーンできます。
私の質問は、そのクラスをどのように実装して、それをキャストして文字列と言うことができるかということです:
jsonData["key"] のようないくつかの回避策を使用せずに文字列として
jsonData["key"].data as String
コード:
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)
}
}