は、だから私は、このオブジェクト持っている:URLSessionを使用して解析し、Swiftの配列でそれらをインポートするにはどうすればよいですか?
class Messages: NSObject {
var id: String?
var date: String?
var text: String?
}
をそして私はURLSessionを使用してデータを解析していますし、私はそれにメッセージを追加するための配列を作成します。問題は、私がmessages.id
またはmessages.text
を印刷するときです。データを見ることができますが、配列にそれらを追加すると:messagesSet = [Messages]()
と、配列のテキストを印刷すると、[]のようなものになります。ここで
は、データを解析するためのコードです:
//Initiate Getting Messages
func getMessages(url: URL, completion: @escaping DownloadComplete) {
let dataTask = URLSession.shared.dataTask(with: url) {
(data, response, error) in
self.didFetchMessages(data: data, response: response!, error: error, completion: completion)
}
dataTask.resume()
}
//Callback for URLSession for getMessages
private func didFetchMessages(data: Data?, response: URLResponse, error: Error?, completion: @escaping DownloadComplete) {
do {
let jsonData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: Any]
guard let messageList = jsonData["messages"] as? [Any] else {
completion(nil, false)
return
}
for messageInfo in messageList {
let message = Messages()
guard let info = messageInfo as? [String:Any] else {
completion(nil, false)
return
}
if let id = info["id"] as? String {
message.id = id
}
if let date = info["date"] as? String {
message.date = date
}
if let text = info["text"] as? String {
message.text = text
}
messagesSet.append(message)
print(messagesSet)
}
completion(messagesSet, true)
} catch let error {
print("Decoding error \(error)")
}
}
は..私はこの情報がこの問題の解決策を見つけるために十分であることを望むあなたの助けをいただき、ありがとうございます。ここで
はJSONレスポンスです:{
"messages": [
{
"id": "4323",
"date": "07/01/17 23:22",
"text": "This is a test message"
},
{
"id": "4324",
"date": "07/01/17 23:23",
"text": "This is a test message 2"
},
{
"id": "4326",
"date": "07/01/17 23:25",
"text": "This is a test message3"
}
]
}
解析するJSONファイルのサンプルを含めることができますか?さらに良い点は、その問題を示す遊び場です。 – kevin
http://stackoverflow.com/questions/41734982/parsing-nested-array-of-dictionaries-using-object-mapper/41735194#41735194 JSONの解析は何千もの質問で言及されています –
@kkoltzauあなたはJSONファイルも持っています – Pavlos