Ios 如何按字符串日期排序JSON?

Ios 如何按字符串日期排序JSON?,ios,json,swift,Ios,Json,Swift,我有一个从JSON中提取数据的应用程序。JSON的顺序很重要,因为应用程序按照JSON的顺序显示数据 我已经创建了一个单独的应用程序来创建JSON对象,将其添加到JSON的其余部分并上传。问题是它会将其添加到JSON文件的顶部。我想在按日期值上传JSON之前对其重新排序 我的JSON格式如下: { "articles": [ { "title":"Title 3", "url":

我有一个从JSON中提取数据的应用程序。JSON的顺序很重要,因为应用程序按照JSON的顺序显示数据

我已经创建了一个单独的应用程序来创建JSON对象,将其添加到JSON的其余部分并上传。问题是它会将其添加到JSON文件的顶部。我想在按日期值上传JSON之前对其重新排序

我的JSON格式如下:

{
"articles":
    [                       
        {
            "title":"Title 3",
            "url":"URL 3",
            "date":"04/01/17"
        },  

        {
            "title":"Title 2",
            "url":"URL 2",
            "date":"03/01/17"
        },  

        {
            "title":"Title 1",
            "url":"URL 1",
            "date":"02/01/17"
        },  
    ]
}
日期是dd/MM/yy格式的字符串。如果我按顺序添加文章,那么就没有问题了,因为最新的文章总是会添加到顶部,但是我有时会添加前几天的文章,我想将其插入前一个位置


有没有办法在通过日期值上传JSON之前对其进行排序?

因为它已经是数组,只需减去它,转换为
date
,然后比较它们,非常简单:

let articleArray: [[String:String]] = dict["articles"]!
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yy"

dict["articles"] = articleArray.sorted { (first, second) -> Bool in
    return dateFormatter.date(from: first["date"]!)! < dateFormatter.date(from: second["date"]!)!
}
let articleArray:[[String:String]]=dict[“articles”]!
让dateFormatter=dateFormatter()
dateFormatter.dateFormat=“dd/MM/yy”
dict[“articles”]=articleArray.sorted{(第一,第二)->Bool-in
返回dateFormatter.date(起始日期:第一个[“日期”!)!
SwiftyJSON

if let articleArray = json["articles"].array {
     let sorted = articleArray.sorted(by: { (first, second) -> Bool in
        return dateFormatter.date(from: first["date"].stringValue)! < dateFormatter.date(from: second["date"].stringValue)!
     })
 }
如果让articleArray=json[“articles”].array{
让sorted=articleArray.sorted(按:{(第一,第二)->Bool-in
返回dateFormatter.date(从:第一个[“日期”].stringValue)!
尽管您的JSON值可能是按照您输入的顺序显示的,但您不应该依赖于此,因为字典是无序的。我建议在JSON文章密钥中使用一个数组,然后按日期对该数组进行排序。这看起来很棒,这正是我想要做的。不过,我在获取articleArray时遇到了一些问题。我使用的是SwiftyJSON,所以我的json是json格式的,我不知道如何将其转换为数组或dict。你知道怎么做吗?我想我已经对它进行了排序,我已经添加了我的答案,以防它对任何人都有帮助。@Ghertysh用SwiftyJSON更新,你可以使用它的函数更容易地减去值,你不需要用它来转换类型,将
dateFormatter
移出该块,这样它就不需要多次重新创建。感谢您的更新!这绝对是正确的方法,我将删除我的答案。刚刚意识到,这个月的日期格式应该是:“dd/MM/yy”