亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字典順序錯誤-JSON

字典順序錯誤-JSON

料青山看我應如是 2019-12-06 15:19:30
我正在嘗試創建一個字典,可以將其制成JSON格式的對象并發送到服務器。例:    var users = [["First": "Albert", "Last": "Einstein",     "Address":[        "Street": "112 Mercer Street",        "City": "Princeton"]],["First": "Marie", "Last": "Curie",     "Address":[        "Street": "108 boulevard Kellermann",        "City": "Paris"]]]我用這個功能func nsobjectToJSON(swiftObject: NSObject) -> NSString {    var jsonCreationError: NSError?    let jsonData: NSData = NSJSONSerialization.dataWithJSONObject(swiftObject, options: NSJSONWritingOptions.PrettyPrinted, error: &jsonCreationError)!    var strJSON = NSString()    if jsonCreationError != nil {        println("Errors: \(jsonCreationError)")    }    else {        // everything is fine and we have our json stored as an NSData object. We can convert into NSString        strJSON =  NSString(data: jsonData, encoding: NSUTF8StringEncoding)!        println("\(strJSON)")    }    return strJSON}但是我的結果是這樣的:[  {    "First" : "Albert",    "Address" : {      "Street" : "112 Mercer Street",      "City" : "Princeton"    },    "Last" : "Einstein"  },  {    "First" : "Marie",    "Address" : {      "Street" : "108 boulevard Kellermann",      "City" : "Paris"    },    "Last" : "Curie"  }]問題:為什么姓氏是姓氏?我認為應該在地址上方。請讓我知道我在NSDictionary上做錯了什么,這才是錯誤的。任何幫助將不勝感激-謝謝。
查看完整描述

3 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

發表評論中已經說過的話:詞典是“無序集合”。他們的鍵/值對根本沒有任何順序。期。

如果要有序集合,請使用除字典外的其他東西。(做到這一點的一種方法是使用單項詞典的數組。)您還可以編寫代碼,將字典的鍵加載到可變數組中,對數組進行排序,然后使用鍵的排序后的數組來獲取字典中的鍵/值對。所需的順序。

您還可以創建自己的集合類型,該集合類型使用字符串作為索引并使項目保持排序。Swift使其簡單明了,盡管在計算上會很昂貴。


查看完整回答
反對 回復 2019-12-06
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

我確實喜歡這個


 let stagesDict = NSDictionary()

 if let strVal = sleepItemDict["stages"] as? NSDictionary {

 stagesDict = strVal

let sortedKeys = (stagesDict.allKeys as! [String]).sorted(by: <) 

 var sortedValues : [Int] = []

  for key in sortedKeys {

     let value = stagesDict[key]!

      print("\(key): \(value)")

      sortedValues.append(value as! Int)

    }

}


查看完整回答
反對 回復 2019-12-06
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

將字典鍵加載到數組中并進行排序不是解決此問題的方法。因為在很多情況下,我們需要在沒有任何邏輯的情況下進行訂購,所以我只想擁有一個像這樣的數組:c,d,a,e。因此,唯一的方法是將序列數組放入json中,以注意到這是我想要的順序。真煩人 用某種語言,他們沒有這個麻煩。例如,它是PHP。 

查看完整回答
反對 回復 2019-12-06
  • 3 回答
  • 0 關注
  • 613 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號