【问题标题】:How to get value from an Array() at index in Swift?如何从 Swift 中索引处的 Array() 获取值?
【发布时间】:2014-07-17 06:54:41
【问题描述】:
    let urlPath: String = "http://binaenaleyh.net/dusor/"
    var url: NSURL = NSURL(string: urlPath)
    var imgData: NSData = NSData(contentsOfURL: url)

    let jsonDict = NSJSONSerialization.JSONObjectWithData(imgData, options: nil, error: &error) as NSDictionary

    println(jsonDict["dersler"])

它返回整个 JSON 值,但我只需要特定索引处的值。

【问题讨论】:

  • 老兄,不要为了问问题而编辑我的答案。如果您想问什么,请发表评论。你得到的那个错误,重启 Xcode。
  • 它给了你正确的答案。返回字典数组,如果你想要特定的字典项,那么你必须按照@Fogmeister 回答

标签: ios iphone swift


【解决方案1】:

我认为jsonDictNSDictionary 还是[NSObject:AnyObject]?首先,您不应该使用valueForKey()NSDictionary 上的适当方法是 objectForKey。但更好的是,你可以只给它下标。

当然,下标的结果是一个键入为AnyObject 的值,你不能只下标。您需要将其转换为适当的类型。如果你知道演员会成功,你可以使用as,否则你需要as?。假设是后者,这看起来像

if let ary = jsonDict["dersler"] as? [Int] {
    let x: Int = ary[0]
    println(x)
}

【讨论】:

  • 实际数组有字典,比如{"0": "2013-2014", "1": "BAHAR", "2": "2", "3": "CEE 102", "4": "Logic Circuits", "5": "3", "6": "6.00", "7": "YRD.DO\u00c7.DR.INDRIT MYDERRIZI", "8": "0", "9": "IA", "10": "TeacherHold", "11": "2", "12": ""}而不是Int纯值。可能这就是类型转换不正确的原因。
【解决方案2】:

你当然可以这样做......

println(jsonDict["dersler"][0])

?

这个问题也被问过很多次了。

【讨论】:

  • 您不能在插值内使用引号。幸运的是,您实际上根本不需要插值。 println(foo) 工作得很好。
  • @KevinBallard 谢谢。更新。可以用单引号吗?即jsonDict['dersler']?
猜你喜欢
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 2021-03-02
  • 2018-12-10
  • 2011-07-10
  • 2022-11-16
相关资源
最近更新 更多