Arrays 如何从嵌套数组返回值-swift 3

Arrays 如何从嵌套数组返回值-swift 3,arrays,swift,dictionary,swift3,Arrays,Swift,Dictionary,Swift3,我的api查询返回数组中的多个值(如下所示),我需要将这些值用于进一步的函数。如何检索嵌套的值60 我的代码例如让uid=value[“uid”]as?字符串可以很好地返回uid和name。 但是对于让rest=value[“field\u resting\u bpm”]作为?字符串它返回nil 如何更正此行以返回嵌套值“60” let rest = value["field_resting_bpm"] as? String' api查询是: let credentialData =

我的api查询返回数组中的多个值(如下所示),我需要将这些值用于进一步的函数。如何检索嵌套的值60

我的代码例如让uid=value[“uid”]as?字符串可以很好地返回uid和name。 但是对于
让rest=value[“field\u resting\u bpm”]作为?字符串
它返回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=“”

它在我的控制台中返回:

 uid = 1;
 name = "Guest User";
"field_resting_bpm" =     {
    und =         (
                    {
            value = 60;
        }
    );
更新:此字段是Drupal用户帐户设置中的整数。我添加了一个文本字段(因此它应该返回一个字符串),名为field\u rest\u bpm\u string,也用于测试

站点上的json返回:


“field_rest_bpm”:{“und”:[{“value”:“60”},“field_rest_bpm_string”:{“und”:[{“value”:“65”,“format”:null,“safe_value”:“65”}]}

注意代码在Swift 3中,但您可以在Swift 2中轻松转换它<代码>迅捷JSON版本代码在2和3中相同

如果您使用的是
SwiftyJSON
,那么事情就会简单得多

let value = datareturned["field_resting_bpm"]["und"][0]["value"].stringValue
print(value)
如果您没有使用
SwiftyJSON

let rest = value["field_resting_bpm"] as? NSDictionary
let und = (rest?.value(forKey: "und") as! NSArray).object(at: 0) as! NSDictionary
let yourValue = und.value(forKey: "value") as! String

类似于此。

首先检查您的结构
field\u rest\u bpm
是一个字典,它有一个数组
und
,其中第一个对象有一个名为“value”的键值,值为60。谢谢。刚刚检查,在我的Drupal7站点中,该字段位于我的用户帐户中,字段类型为整数。我正在尝试将建议的代码更改为Int,到目前为止运气不好。我还将尝试将Drupal用户设置中的字段更改为字符串。在Swift中,最好使用本机字典和数组,而不是
NSDictionary
NSArray
true。。。但我更喜欢使用
SwiftyJSON
。有时也取决于需要。这里有一个参考,对于swift数组,我们使用的是值,即struct,我说的是
NSDictionary
NSArray
而不是
SwiftyJSON
非常感谢您的帮助。我使用的是SwiftyJSON(文件顶部有“import SwiftyJSON”),所以我先尝试了一下。结果:在我添加这些可选值之前,XCode运行了关于可选值的红色错误!代码是这样的:“让rest=value[“field\u resting\u bpm”!![“und”]!![0][“值”]!!。stringValue’,但随后它返回nil并崩溃。有什么想法吗?在尝试不使用SwiftyJSON和使用NSDictionary的代码时,在“let und=”开头的行中,我得到了红色错误“NSDictionary类型的值没有成员值”。思想?
let rest = value["field_resting_bpm"] as? NSDictionary
let und = (rest?.value(forKey: "und") as! NSArray).object(at: 0) as! NSDictionary
let yourValue = und.value(forKey: "value") as! String