【问题标题】:Getting specific value from Swift array从 Swift 数组中获取特定值
【发布时间】:2018-02-12 15:40:13
【问题描述】:

所以,我使用 SwiftyJSON 从 API 下载数据。我正在转换它,并循环获取所有结果。我正在尝试将每个结果的特定部分打印出来,但似乎无法正常工作。

我在下面使用的代码获取 json,并循环通过它并打印出下面的内容。从打印的内容来看,我只想得到“主题”。

do {
            let jsonObj = try JSONSerialization.jsonObject(with: data, options: []) as! [String: AnyObject]
            let json = JSON(jsonObj)


            let pms: NSArray = json["result"]["pms"].arrayValue as NSArray


            let arrayLength = pms.count

            for var i in (0..<arrayLength) {
                let pm = pms[i]

                i+=1

            }

        } catch let error as NSError {
            print(error)
        }

然后给出如下值:

{
  "subject" : "Example",
  "status" : 1,
  "recipient" : 012345,
  "recipientusername" : "Example",
  "dateline" : "2018-01-01",
  "sender" : 012345,
  "pmid" : 012345,
  "senderusername" : "DoctorSheep"
}
{
  "subject" : "Example 2",
  "status" : 1,
  "recipient" : 678910,
  "recipientusername" : "Example 2",
  "dateline" : "2018-01-01",
  "sender" : 678910,
  "pmid" : 678910,
  "senderusername" : "Example 2"
}

如果我尝试类似的东西

let subject = pm["subject"]

我收到“类型 'Any' 没有下标成员”的错误。

【问题讨论】:

  • 有几点需要注意。在 Swift 中,除非必须,否则不要使用 NS 值。使用 Swift 版本 NSArray = Array。使用 Codable 协议帮助解析 JSON,然后遍历数组并获取主题值
  • 哇,你刚刚告诉我的那个简单的事情解决了它。
  • 我现在将进行编辑以显示。

标签: arrays json swift


【解决方案1】:
let pms = json["result"]["pms"].arrayValue as Array


let arrayLength = pms.count

for var i in (0..<arrayLength) {
    let pm = pms[i]
    let subject = pm["subject"]
    print(subject)
    i+=1
}

【讨论】:

    猜你喜欢
    • 2022-06-28
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多