键入任何没有下标成员的swift 3

Posted

技术标签:

【中文标题】键入任何没有下标成员的swift 3【英文标题】:Type any has no subscript members swift 3 【发布时间】:2016-09-30 13:02:03 【问题描述】:

我的代码是这样的

import UIKit
import Alamofire

class ViewController: UIViewController 


var young = "https://jsonplaceholder.typicode.com/posts"


override func viewDidLoad() 
    super.viewDidLoad()

    callAlamo(url: young)


func callAlamo(url: String)

    Alamofire.request(url).responseJSON  (response) in
        let responseJSON = response.data
        if responseJSON  == nil
           print("response is empty")
        else
            print("Jon is \(responseJSON)")

            self.parseJson(JSONData: responseJSON!)
        

    


func parseJson(JSONData: Data)

    do
        let readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers)

        for  i in 0..<(readableJSON as AnyObject).count
            print(readableJSON[i] as String)
        

    catch
        print(error)
    
  

我需要这个 Json 中的每个数组元素。

【问题讨论】:

关于同样的错误信息有 > 20 个问题。请检查您的问题是否之前没有得到解答。 你能告诉我你正在获得表单服务的 JSON 吗? 【参考方案1】:

尝试使用以下代码:

Alamofire.request(url).responseJSON  (response) in

        switch response.result 
        case .success(let value) :

            print(response.request)  // original URL request
            print(response.response) // HTTP URL response
            print(response.data)     // server data
            print(response.result)   // result of response serialization

            if let JSON = response.result.value as! [String:AnyObject]!
                print("JSON: ",JSON)
            
        case .failure(let encodingError):
            completionHandler(APIResponse.init(status: "failure", response: nil, result:nil))
        
    

【讨论】:

【参考方案2】:

在使用responseJSON 处理程序时,JSON 数据已在内部由JSONSerialization 解析。您确实想再次尝试解析它,否则您将解析服务器的响应数据两次,这对性能非常不利。您需要做的就是:

Alamofire.request(url).responseJSON  response in
    if let json = response.result.value 
        print("Parsed JSON: \(json)")
        // Now you can cast `json` to a Dictionary or Array
    

【讨论】:

以上是关于键入任何没有下标成员的swift 3的主要内容,如果未能解决你的问题,请参考以下文章

在 swift 3 中打印 json 时出现任何下标成员错误 [重复]

任何对象?没有名为“下标”的成员 swift

类型“任何”没有下标成员[重复]

Swift 3 - 类型'Any'没有下标成员

swift 3 Type 'Any' 没有下标成员? [复制]

类型'Any'没有下标成员Swift 3