如何在Swift中解析解析后的JSON中的数组?

 嗒嗒爱臭臭 发布于 2023-01-11 18:59

我正在使用返回看起来像这样的JSON的API

{
   "boards":[
      {
         "attribute":"value1"
      },
      {
         "attribute":"value2"
      },
      {
         "attribute":"value3",
      },
      {
         "attribute":"value4",
      },
      {
         "attribute":"value5",
      },
      {
         "attribute":"value6",
      }
   ]
}

在Swift中,我使用两个函数来获取然后解析JSON

func getJSON(urlToRequest: String) -> NSData{
    return NSData(contentsOfURL: NSURL(string: urlToRequest))
}

func parseJSON(inputData: NSData) -> NSDictionary{
    var error: NSError?
    var boardsDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(inputData, options: NSJSONReadingOptions.MutableContainers, error: &error) as NSDictionary
    return boardsDictionary
}

然后我用它来调用它

var parsedJSON = parseJSON(getJSON("link-to-API"))

JSON被解析得很好.当我打印出来

println(parsedJSON["boards"])

我得到了数组的所有内容.但是我无法访问每个索引.我很肯定它是一个数组,因为我做了

parsedJSON["boards"].count

返回正确的长度.但是,如果我尝试通过使用访问各个索引

parsedJSON["boards"][0]

XCode关闭语法高亮,并给我这个:

XCode错误

并且代码不会编译.

这是XCode 6的错误,还是我做错了什么?

3 个回答
  • 看看这里:https://github.com/lingoer/SwiftyJSON

    let json = JSONValue(dataFromNetworking)
    if let userName = json[0]["user"]["name"].string{
        //Now you got your value
    }
    

    2023-01-11 19:02 回答
  • Swift中的字典访问返回一个Optional,因此您需要强制该值(或使用if let语法)来使用它.

    这有效: parsedJSON["boards"]![0]

    (但它可能不应该崩溃Xcode)

    2023-01-11 19:02 回答
  • 您可以创建变量

    var myBoard: NSArray = parsedJSON["boards"] as! NSArray
    

    然后你可以访问"董事会"中你拥有的任何东西 -

    println(myBoard[0])
    

    2023-01-11 19:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有