【问题标题】:Swift 3 cannot subscript a value of type 'String' with an index of type 'String' using SwiftyJSON and AlamofireSwift 3 不能使用 SwiftyJSON 和 Alamofire 为“String”类型的值下标“String”类型的索引
【发布时间】:2017-08-02 20:19:29
【问题描述】:

这是代码,我正在制作一个比特币价格跟踪器应用程序,并且我是 ios 开发新手,所以我正在努力解决这个错误:( 感谢任何帮助。我正在使用 Alamofire 和 SwiftyJSON 来完成 json 工作。他们是使用 cocoapods 导入。这是我使用的 json:https://apiv2.bitcoinaverage.com/indices/global/ticker/BTCUSD

// Connect the UI
@IBOutlet weak var PriceLabel: UILabel!
@IBOutlet weak var PercentageLabel: UITextView!
@IBOutlet weak var CurrencyPicker: UIPickerView!

var url : String = "https://apiv2.bitcoinaverage.com/indices/global/ticker/BTCUSD"

var Price : String = ""

var jsondata = ""


// Called before app is shown to user
override func viewDidLoad() {
    super.viewDidLoad()

    // Request the JSON Data
    requestJson()
}


func requestJson(){
    Alamofire.request(url).response { response in
        print("Request: \(response.request)")
        print("Response: \(response.response)")

        if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
            print("Data: \(utf8Text)")
            self.parseJSON(json: utf8Text)
        }
    }
}

func parseJSON(json: String){
    Price = jsondata["ask"].stringvalue **This is where it kicks an error**
}

【问题讨论】:

  • 您已将 jsondata 定义为字符串,但您试图将其用作字典?试试: var jsondata: [AnyHashable: AnyHashable] = [:]
  • 刚试了一下,报错:'anyhashable'类型的值没有成员'stringvalue'

标签: ios json swift xcode alamofire


【解决方案1】:
func requestJson(){
    Alamofire.request(url).response { response in
        if let data = response.data {
            self.parseJSON(json: JSON(data: data))
        }
    }
}

func parseJSON(json: JSON){
    Price = json["ask"].stringValue 
}

对于从 URL 获取 json,您也可以使用 responseJSON

【讨论】:

  • “'anyhashable'类型的值没有成员'stringvalue'”,这也是使用ninjaproger的解决方案
  • @WilliamGregory 抱歉,我复制了您的代码 :)。对! JSON 没有成员 stringvalue,但有 stringValue
  • 很奇怪,只是这次'stringvalue'是'stringValue'
  • 效果很好,非常感谢!,将您的答案投票为正确 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多