使用 SwiftyJSON 将 JSONArray 解析为字符串数组

Posted

技术标签:

【中文标题】使用 SwiftyJSON 将 JSONArray 解析为字符串数组【英文标题】:Parsing JSONArray to string array using SwiftyJSON 【发布时间】: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 对吧? 【参考方案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)
   
 

【讨论】:

谢谢@vadian 先生,我仍然无法将其解析为字符串数组,但在您的帮助下,我已经有了 jsonarray 字典。这是sn-p代码image.prntscr.com/image/91e86ca71c474c28ae7b9199ecca65b0.png 这是结果image.prntscr.com/image/cbed3c440f2e4d21871b4539dd137ab0.png,我打印了weights,它得到了jsonarray。但是以下几行没有解析它。非常感谢!【参考方案2】:

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

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

【讨论】:

以上是关于使用 SwiftyJSON 将 JSONArray 解析为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

SwiftyJson 添加到对象/数组的末尾

如何访问第一组数组? SwiftyJSON

使用 Alamofire 调用 JSONArray

使用 SwiftyJSON 将 JSON 解析为结构

按子项的值对多维数组进行排序

我将如何使用 SwiftyJSON 解析这种类型的 JSON?