我有来自api的JSONString如下: [来自api的JSONString]
但是在我从Alamofire中读取iOS后,JSONString的顺序不正确为api: [在iOS中阅读后的JSON]
如何保持JSON格式与api的顺序相同?
答案 0 :(得分:1)
正如@Nimit所解释的那样,回调中表示的JSON格式和API响应是最不重要的。您需要关注的是,当您从响应中访问值时,KEY应该与API中看到的相同。没有不匹配,甚至不区分大小写的字母,或者你总是在响应中得到NIL。
使用Alamofire向您解释一下,让我向您展示一个例子:
let APIURL = "https://api.yoururl.com"
Alamofire.request(.GET, APIURL , headers: headers) .responseJSON { response in
let value = response.result.value!
let JSONRes = JSON(value)
let KLValue = JSONRes["Kuala Lumpur"].int!
print(KLValue) //Or call a function to handle the callback
}
这里我使用SwiftyJSON作为JSON。最后,您要做的就是从JSON响应中的关联键中获取数据,无需担心它们的格式化方式,或者响应中键的顺序是什么 - 大部分时间您都会与API中的相同 - 但如果它发生变化,不必担心。
另一方面,为了确保当JSON字段为零时你的应用没有任何反应,总是像这样放一个if-let:
if let valueFromJSON = JSONRes["Kuala Lumpur"].string {
someVariable = valueFromJSON
} else {
someVariable = "No Value"
}
谢谢!
答案 1 :(得分:0)