Swift - 使用 SwiftyJSON 从 JSON 中获取字符串数组

Posted

技术标签:

【中文标题】Swift - 使用 SwiftyJSON 从 JSON 中获取字符串数组【英文标题】:Swift - Get an array of strings from JSON using SwiftyJSON 【发布时间】:2016-10-30 16:21:31 【问题描述】:
[
  
    "content": "Hello!",
    "images": [
      
        "url": "http://url1.com"
      ,
      
        "url": "http://url2.com"
      ,
      
        "url": "http://url3.com"
      
    ]
  
]

如何使用SwiftyJSON 获取图片网址数组?

这是我尝试过但没有奏效的方法。

for (key, subJson) in json["images"] 
 if let url = subJson["url"].string 
    print(url)


如果我理解正确,我的“图像”JSON 包含一个字典数组,但我的代码是一个字符串数组。我该怎么做才能得到一个 url 字符串数组?

【问题讨论】:

【参考方案1】:

根据您的 JSON

if let images = json[0]["images"].array 
  for image in images 
    if let url = image["url"].string 
      print(url)
    
  

根对象是一个数组[],包含images的字典()在根数组的第一个对象中。

你可以得到一个 URL 数组

if let images = json[0]["images"].array 
  let imageArray = images.flatMap $0["url"].string 
  print(imageArray)

【讨论】:

谢谢!如果我还想要一串url 怎么办?我该怎么做? 看不懂,url的值 String. 当我这样做 let imageString = images.flatMap $0["url"].string 时,我得到一个“平面图产生......不是字符串类型的预期上下文结果!”对不起。我对 swift 很陌生。 您写道:获取一个 url 字符串数组。这字符串数组 ([String]),而不是单个字符串 (String)。 我明白了。你的回答很完美,我已经用过了。但现在我有另一个 JSON 需要解析。它要求我将其作为单个 String 而不是 [String] 取出。我不知道该怎么做,我想你可能会,所以这就是我评论问的原因。

以上是关于Swift - 使用 SwiftyJSON 从 JSON 中获取字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 swiftyjson 和 swift 解析嵌入的 json

Swift 使用 Alamofire 和 SwiftyJSON 解析 Json [关闭]

Alamofire 的 Swift 扩展方法返回 SwiftyJSON 结果

如何使用 SwiftyJSON 在 Swift 中解析这个 JSON 对象?

使用 swiftyJSON 在 Swift 2.0 中解析 JSON 时获取空值

如何使用 SwiftyJSON(在 Swift 中)基于 JSON 对象数组创建对象数组?