私のAPIクエリは、配列内のいくつかの値を返します(下記参照)。入れ子になっている値60を取得するにはどうすればよいですか?ネストされた配列から値を返す方法 - swift 3
マイコード(例:let uid = value["uid"] as? String
)は、uidとnameを返すのにうまく機能します。 しかし、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:文字列= "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)")
これを私のコンソールに返します。
UPDATE:このフィールドは、Drupalのユーザーアカウント設定の整数です。私はまた、サイト上で
JSONをテストするために、field_rest_bpm_stringという名前のテキストフィールドを(それが文字列を返す必要があります)、追加した返されます。
「field_resting_bpm」:{「ウント」:[{「値」 : "60"}]}、 "field_rest_bpm_string":{ "ウント":[{ "値": "65"、 "フォーマット":ヌル、 "safe_value": "65"}]}
最初に構造を確認してください。 'field_resting_bpm'は辞書であり、最初のオブジェクトが" value "という名前のキー値を持ち、値が60である配列' und'を持っています。 –
良いヒント、ありがとうございます。ちょうどチェックされ、私のDrupal7サイトでは、このフィールドはフィールドタイプIntegerを持つユーザーアカウントにあります。私はIntにコードを変更するオプションを試しています、これまでの運はありません。 Drupalユーザー設定のフィールドを文字列に変更しようとします。 –