私のアプリでJSONを使用してウェブサイトからデータを取得したい。しかし、問題は、JSONデータのkey ["posts"]の値を取得しようとするとエラーが表示されることです。ここでスウィフトでJSONを解析するとエラーが発生する4
let url = NSURL(string: "http://bongdavn.com/category/du-lieu/?json=1")!
let request = NSMutableURLRequest(url: url as URL)
URLSession.shared.dataTask(with: request as URLRequest) { (data : Data?, urlResponse : URLResponse?, error : Error?) in
if error != nil {
}
do {
let json = try JSONSerialization.jsonObject(with: data!) as? [String : Any]
let post = json!["post"] as! [String : Any]
print(post)
let content = post["content"] // error show from here.
print(content)
// the compiler show nil instead of value of "content"
DispatchQueue.main.async {
self.TableView.reloadData()
}
}
catch {
print("Catch the error : \(error)")
}
}
.resume()
は私のJSONデータである:ここで
{
"status":"ok",
"post":{
"id":121,
"type":"post",
"slug":"epl-england-premier-league-anh",
"url":"http:\/\/bongdavn.com\/epl-england-premier-league-anh\/",
"status":"publish",
"title":"[EPL] England Premier League – Anh",
"title_plain":"[EPL] England Premier League – Anh",
"content":"<p>West Ham <strong><span class=\"hom\">1<\/span>\u00a0–\u00a0<\/strong><span class=\"awy\"><strong>1<\/strong>\u00a0<\/span>Leicester|||Crystal Palace\u00a0<strong><span class=\"hom\">2<\/span>\u00a0–\u00a0<\/strong><span class=\"awy\"><strong>1<\/strong>\u00a0<\/span>Stoke|||,
"date":"2017-11-29 09:44:13",
"modified":"2017-11-29 09:44:16",
"categories":[ ],
"tags":[ ],
"author":{ },
"comments":[ ],
"attachments":[ ],
"comment_count":0,
"comment_status":"open",
"custom_fields":{ }
},
"previous_url":"http:\/\/bongdavn.com\/bundesliga-dortmund-schalke\/"
}
はエラーです:
Could not cast value of type '__NSSingleObjectArrayI' (0x109b9c328) to 'NSDictionary' (0x109b9cf58). 2017-11-29 22:45:19.764169+0700 BongDa[713:17684] Could not cast value of type '__NSSingleObjectArrayI' (0x109b9c328) to 'NSDictionary' (0x109b9cf58). (lldb)
エラーの原因となるコードはどれですか? – rmaddy
ここからcontent = post ["content"]を許可します。助けてください。 –
あなたの質問を 'print(post)'の出力で更新してください。 – rmaddy