【问题标题】:Parsing JSONArray to string array using SwiftyJSON使用 SwiftyJSON 将 JSONArray 解析为字符串数组
【发布时间】:2016-10-21 04:05:38
【问题描述】:

好吧,我真的是 Swift 新手,我使用 swiftyJSON 来轻松解析来自 API 的 JSON 数据。

我有一个如下所示的数据响应:

[
   {
     "fname": < String value>
     "mname": < String value>
     "lname": < String value>
     "weights": [
          {
            "date": <String value>, 
            "weight": <String value> 
          },
          {
            "date": <String value>,
            "weight": <String value>
          }
]

对于我的 swiftyJSON 解析方式,这是我的代码

let swiftyJSON = JSON(data: data!)
for item in swiftyJSON.arrayValue{
    self.firstName = item["fname"].stringValue
    self.middleName = item["mname"].stringValue
    self.lastName = item["lname"].stringValue
    //JSON Array "weights" code snippet below
}

对于我已将其解析为字符串但使用"weights" 的名称。我不知道该怎么做。我试过用这个:

for key in item["weights"]["weight"].arrayValue{
   self.allWeights.append(key.stringValue)
}

而且它不工作。有人可以帮我弄这个吗?非常感谢。

【问题讨论】:

  • 我用的是xcode 7.3 所以是swift 2.2 对吧?

标签: json swift2 xcode7 swifty-json


【解决方案1】:

weights 包含一个字典数组

...   
if let weights = item["weights"].array {
   for weightItem in weights {
     let date = weightItem["date"].stringValue
     let weight = weightItem["weight"].stringValue
     print(date, weight)
   }
 }

【讨论】:

【解决方案2】:

这可能是一个更快速的答案。我们在这里所做的是使用 map 遍历 json 数组并为数组中的每个项目返回一个字典对象。 map 函数当然会创建自己的数组并将每个字典对象附加到其中,然后返回存储在 weights 变量中的整个数组。可能大脑快炸了,所以如果我没有完全正确,请告诉我。

let swiftyJSON = JSON(data: data!)
let weights = swiftyJSON["weights"].arrayValue.map {["date": $0["date"].stringValue, "weights": $0["weights"].stringValue]}

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多