在将 json 数据转换为 [[String: AnyObject]] 之后它似乎是空的 - 为什么?
After casting json data to [[String: AnyObject]] it seems to be empty - why?
我正在使用 alamofire
调用我的网络服务并尝试解析 json 结果。
我的代码如下所示:
Alamofire.request("\(serverURL)/users/\(username)/hashtags")
.validate()
.responseJSON { response in
switch response.result {
case .success:
DispatchQueue.main.async(execute: {
print(response.result.value!)
if let jsonData = response.result.value as? [[String: AnyObject]] {
print("this is not printed")
第一个打印returns:
{
hashtags = (
test,
elo
);
}
而第二个根本没有打印 - 代码永远不会执行。为什么?
当我在浏览器中调用我的网络服务时,我得到:
{"hashtags":["test","test2"]}
您尝试转换的 JSON 结构是字典而不是数组。您正在尝试将响应转换为 字典数组 ,这就是它失败的原因。
您需要使用:
if let jsonData = response.result.value as? [String: AnyObject]
{
// Handle data
}
我正在使用 alamofire
调用我的网络服务并尝试解析 json 结果。
我的代码如下所示:
Alamofire.request("\(serverURL)/users/\(username)/hashtags")
.validate()
.responseJSON { response in
switch response.result {
case .success:
DispatchQueue.main.async(execute: {
print(response.result.value!)
if let jsonData = response.result.value as? [[String: AnyObject]] {
print("this is not printed")
第一个打印returns:
{
hashtags = (
test,
elo
);
}
而第二个根本没有打印 - 代码永远不会执行。为什么?
当我在浏览器中调用我的网络服务时,我得到:
{"hashtags":["test","test2"]}
您尝试转换的 JSON 结构是字典而不是数组。您正在尝试将响应转换为 字典数组 ,这就是它失败的原因。
您需要使用:
if let jsonData = response.result.value as? [String: AnyObject]
{
// Handle data
}