【发布时间】:2017-06-09 14:29:48
【问题描述】:
我有一个 Alamofire 请求,结果给了我 JSON。这是我的 JSON:
"user" : {
"field_first_name" : {
"und" : [
{
"value" : "Christopher",
"format" : null,
"safe_value" : "Christopher"
}
]
},
“und”值是一个数组,通常只有一个值。我想一直抓取这个数组的第一个元素,因为偶尔这个字段会有多个元素,但第一个总是正确的结果。
下面的代码有效,直到我到达“.first”。这将返回一个 (String, JSON) 类型的值,我无法弄清楚如何将该项目“firstValue”恢复为可用格式。每当我尝试使用
Alamofire.request(url, method: .post, parameters:parameters, headers: headers)
.responseJSON { response in
if let data = response.result.value {
let json = JSON(json: data)
let firstValue = json["user"]["field_first_name"]["und"].first
print(firstValue!)
}
}
firstValue 然后变成 (String, JSON) 类型,我不知道如何处理。我想得到的是“firstValue”中键“value”的值。
这是“firstValue”打印出来的:
("0", {
"safe_value" : "Christopher",
"value" : "Christopher",
"format" : null
})
这种方法可以挽救吗?我可以做一个 for in 循环,得到第一个结果,然后告诉它忽略其余的,但这似乎不对。感谢您的帮助。
【问题讨论】:
-
试试this answer,而不是先使用数组,然后再让我知道它是否有效
-
我找到了解决方案:firstValue 是一个元组,类型为 (String, JSON),我只需要元组的第二部分。所以,如果我做 print(firstValue.1["value"]) 它的工作原理
标签: json swift alamofire swifty-json