【问题标题】:Can' read JSON element in Swift无法在 Swift 中读取 JSON 元素
【发布时间】:2017-07-11 21:44:29
【问题描述】:

我使用的是 Swift 3.0,似乎无法解析这个 JSON 响应。

{
    "books": [{
        "name": "NAME",
        "key": "Key"
    }],
    "count": 1
}

这是我正在使用的

let booksData = try JSONSerialization.jsonObject(with: data!) as! [String:Any]

if let bookCount = booksData["count"] as? String {
    print("found")
}
else {
    print("Not Found")
}

我必须在这里遗漏一些非常明显的东西。我正在尝试在阅读书籍数组之前阅读计数。

【问题讨论】:

  • 为什么要将 JSON 对象转换为字符串数组?另外,您到底遇到了什么错误?
  • @SumnerEvans 因为 JSON 是 String:Any 类型的键值对。只是没有找到 bookCount。如果书籍不存在则找到,但如果书籍存在则找不到。
  • 请附上您收到的错误信息。

标签: json swift swift3


【解决方案1】:

试试这个:

if let bookCount = booksData["count"] as? NSNumber {
    print("found")
} else {
    print("Not Found")
}

在您的 JSON 数据中,请参阅 "count": 11 是一个 JSON 数字,用 JSONSerialization 转换为 NSNumber。而as?NSNumber 转换为String 总是失败。

【讨论】:

  • 我刚刚想通了,正准备回到 SO 写下我是多么的白痴。谢谢你的回答。
  • @HPatel,也许在发布问题之前放松半小时会是一个好习惯。祝您和您的应用好运。
【解决方案2】:

if let bookCount = bookData 应该是if let bookCount = booksData

【讨论】:

  • 对不起,这是一个错字;适当地编辑了问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多