我有一个Alamofire请求,结果给了我JSON。这是我的JSON:
"user" : {
"field_first_name" : {
"und" : [
{
"value" : "Christopher",
"format" : null,
"safe_value" : "Christopher"
}
]
},
“und”值是一个数组,通常只有一个值。我想随时抓住这个数组的第一个元素,因为这个字段偶尔会有多个元素,但第一个元素总是正确的结果。
下面的代码有效,直到我进入“.first”。这将返回type(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”中关键“值”的值。
这就是“firstValue”打印出来的内容:
("0", {
"safe_value" : "Christopher",
"value" : "Christopher",
"format" : null
})
这种方法是否可以挽救?我可以在循环中做一个,得到第一个结果,并告诉它忽略其余的,但这似乎不正确。谢谢你的帮助。
答案 0 :(得分:0)
我知道这已经过去了一年多,但这应该适用于您的特定数据。虽然这是一长行代码。我会对其进行分解以使其更具可读性。
if let firstValue = json["user"]["field_first_name"] ["und"].arrayValue[0]["value"].string {
print(firstValue)
{
答案 1 :(得分:0)
我相信您应该可以执行类似的操作
if let firstValue = json["user"]["field_first_name"]["und"].first?.1 {
print(firstValue)
}