Swift 3 alamofire swiftyjson 下标
Swift 3 alamofire swiftyjson subscript
我不知道为什么我的代码不起作用,我的结果总是零。
我集成了 alamofire 和 swiftyjson 这是我的代码:
let urlString = "myurl"
let params: Parameters = [
"accessProvider": AccessProvider,
"inputToken": AccessToken
]
Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.httpBody)
.responseJSON { response in
if let responseObject = response.result.value {
print("JSON: \(responseObject)")
let json = JSON(responseObject)
let path: [JSONSubscriptType] = ["user","id"]
let name = json[path].string
print("AAAAA")
print(name)
}
}
我可以读取用户的第一部分,但第二部分的 id 始终为零。
这是回应 json:
{
"responseCode": 0,
"responseDescription": "OK",
"user": "{"id":"MAIL",
"nickname":"MYNAME",
"level":"U",
"status":"A",
"sex":null,
"ageGroup":null,
"address":null,
"latitude":null,
"longitude":null,
"creation_timestamp":"2017-05-10 18:40:21",
"notification":"1",
"last_login":"2017-05-11 18:32:07",
"mobilePreference":null,
"sport":null,
"spot":null,
"token":"LONGTOKENID"}"
}
谢谢瓦迪安,
我根据你的指示解决了这个问题,
如果有人有同样的问题,你可以这样解决:
//初始化第一个json:
let json = JSON(responseObject)
//提取第二个Json为String
let path: [JSONSubscriptType] = ["user"]
let name = json[path].string
//从字符串
中初始化第二个json
if let dataFromString = name?.data(using: .utf8, allowLossyConversion: false)
let jsonuser = JSON(data: dataFromString)
//获取数据
谢谢大家,
祝你有美好的一天。
我不知道为什么我的代码不起作用,我的结果总是零。 我集成了 alamofire 和 swiftyjson 这是我的代码:
let urlString = "myurl"
let params: Parameters = [
"accessProvider": AccessProvider,
"inputToken": AccessToken
]
Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.httpBody)
.responseJSON { response in
if let responseObject = response.result.value {
print("JSON: \(responseObject)")
let json = JSON(responseObject)
let path: [JSONSubscriptType] = ["user","id"]
let name = json[path].string
print("AAAAA")
print(name)
}
}
我可以读取用户的第一部分,但第二部分的 id 始终为零。 这是回应 json:
{
"responseCode": 0,
"responseDescription": "OK",
"user": "{"id":"MAIL",
"nickname":"MYNAME",
"level":"U",
"status":"A",
"sex":null,
"ageGroup":null,
"address":null,
"latitude":null,
"longitude":null,
"creation_timestamp":"2017-05-10 18:40:21",
"notification":"1",
"last_login":"2017-05-11 18:32:07",
"mobilePreference":null,
"sport":null,
"spot":null,
"token":"LONGTOKENID"}"
}
谢谢瓦迪安, 我根据你的指示解决了这个问题, 如果有人有同样的问题,你可以这样解决: //初始化第一个json:
let json = JSON(responseObject)
//提取第二个Json为String
let path: [JSONSubscriptType] = ["user"]
let name = json[path].string
//从字符串
中初始化第二个jsonif let dataFromString = name?.data(using: .utf8, allowLossyConversion: false)
let jsonuser = JSON(data: dataFromString)
//获取数据
谢谢大家, 祝你有美好的一天。