Я JSON, глядя, как это:Анализировать JSON ответ с Swift 3
{"posts":
[
{
"id":"1","title":"title 1"
},
{
"id":"2","title":"title 2"
},
{
"id":"3","title":"title 3"
},
{
"id":"4","title":"title 4"
},
{
"id":"5","title":"title 5"
}
],
"text":"Some text",
"result":1
}
Как я могу разобрать, что JSON с Swift 3?
У меня есть это:
let url = URL(string: "http://domain.com/file.php")!
let request = URLRequest(url: url)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print("request failed \(error)")
return
}
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: String], let result = json["result"] {
// Parse JSON
}
} catch let parseError {
print("parsing error: \(parseError)")
let responseString = String(data: data, encoding: .utf8)
print("raw response: \(responseString)")
}
}
task.resume()
}
Я получаю пусто ответ в приложении. '... 2016-10-09 05: 02: 28.148947 Имя приложения [15760: 381303] [] tcp_connection_get_statistics DNS: 16мс/29мс с момента запуска, TCP: 178мс/223мс с момента запуска, TLS: 0мс/0мс с момента запуска [: ] '. Вы также знаете, как получить значения «text» и «response»? Спасибо – user3051755
@ user3051755, сообщения возвращают массив словарей (см. Ваш json), поэтому я обновил let posts = json ["posts"] as? [[String: Any]] ?? []. Вместо этого попробуйте новый код, и он должен сработать для вас. –
Спасибо, теперь он работает для 'posts'! Как я могу получить значения 'text' и' result'? Я попробовал 'let text = json [" text "] как? [String: String] print (text) ', но в результате он выводит' nil'. – user3051755