【发布时间】:2016-10-28 04:55:02
【问题描述】:
我的 api 查询返回数组中的多个值(如下所示),我需要将其用于更多功能。如何检索嵌套的值 60?
我的代码例如let uid = value["uid"] as? String 可以很好地返回uid 和名称。
但对于 let rest = value["field_resting_bpm"] as? String,它返回 nil。
如何更正这一行以返回嵌套值“60”?:
let rest = value["field_resting_bpm"] as? String'
api查询是:
let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)!
let base64Credentials = credentialData.base64EncodedStringWithOptions([])
let headers = ["Authorization": "Basic \(base64Credentials)"]
var checkUserEndpoint: String = "https://example.site/ios1/user/1.json"
Alamofire.request(.GET, checkUserEndpoint, parameters: nil, headers: headers, encoding: .JSON)
.responseJSON { response in
guard response.result.error == nil else {
print("ran alamofire")
//got an error in getting the data, need to handle it
print("error calling GET")
print(response.result.error!)
return
}
guard let value = response.result.value else {
print("no result data received when calling GET")
return
}
// return UID
print("ran alamofire")
var datareturned = JSON(value)
print("VALUE: \(value)")
它在我的控制台中返回:
uid = 1;
name = "Guest User";
"field_resting_bpm" = {
und = (
{
value = 60;
}
);
更新:此字段是 Drupal 用户帐户设置中的整数。我添加了一个名为 field_rest_bpm_string 的文本字段(因此它应该返回一个字符串),也用于测试
网站上的json返回:
"field_resting_bpm":{"und":[{"value":"60"}]},"field_rest_bpm_string":{"und":[{"value":"65","format":null, "safe_value":"65"}]}
【问题讨论】:
-
首先检查你的结构。
field_resting_bpm是一个字典,它有一个数组und,其中第一个对象有一个名为“value”的键值,值为 60 -
好提示,谢谢。刚刚检查并在我的 Drupal7 站点中,此字段在我的用户帐户中,字段类型为 Integer。我正在尝试将建议的代码更改为 Int 的选项,到目前为止还没有运气。我也会尝试将 Drupal 用户设置中的字段更改为字符串。
标签: arrays swift dictionary swift3