How sort posts by date from json

How can I sort by date, the parsed json in this function ?


Code Block
 func parseData(data: Data) -> [ArticlesData]? {
do {
            let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary
            
            let jsonArticles = jsonResult?["articles"] as? [AnyObject] ?? [] // gets first head of json file and converts it to dictionary
            
            for jsonArticle in jsonArticles { // captures data and stores it in the model object
                let article = ArticlesData()
                
                article.author = jsonArticle["author"] as? String
                article.myDescription = jsonArticle["description"] as? String
                article.publishedAt = jsonArticle["publishedAt"] as? String
                article.urlImage = jsonArticle["urlToImage"] as? String
                article.urlWebsite = jsonArticle["url"] as? String
                articles?.append(article) //put article data in the array
            }
            let nc = NotificationCenter.default
            nc.post(name: Notification.Name("didFinishParsing"), object: nil)
        } catch {
            print("\(error)")
            
        }
        return articles ?? []
    }


    
Is date in article.publishedAt ?
What is the format of this date (show example)

Code Block
func parseData(data: Data) -> [ArticlesData]? {
do {
let jsonResult = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary
let jsonArticles = jsonResult?["articles"] as? [AnyObject] ?? [] // gets first head of json file and converts it to dictionary
for jsonArticle in jsonArticles { // captures data and stores it in the model object
let article = ArticlesData()
article.author = jsonArticle["author"] as? String
article.myDescription = jsonArticle["description"] as? String
article.publishedAt = jsonArticle["publishedAt"] as? String
article.urlImage = jsonArticle["urlToImage"] as? String
article.urlWebsite = jsonArticle["url"] as? String
articles?.append(article) //put article data in the array
}
let nc = NotificationCenter.default
nc.post(name: Notification.Name("didFinishParsing"), object: nil)
} catch {
print("\(error)")
}
return articles ?? []
}

If I understand your question properly:
  • you get as a result an array of ArticlesData:

Code Block
var allArticles : [ArticlesData]

then you can sort it by their publishedAt date, (may be a little different depending what is publishedAt string exact format)
Code Block
let sortedArticles = allArticles.sorted(by: { $0.publishedAt < $1.publishedAt} )

How sort posts by date from json
 
 
Q