当前位置: 首页 > 面试题库 >

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

林泰平
2023-03-14
问题内容

我正在使用一个API,该API返回如下所示的JSON

{
   "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的错误,还是我做错了什么?


问题答案:

Swift中的字典访问返回一个Optional,因此您需要强制该值(或使用if let语法)来使用它。

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

(不过,它可能不会使Xcode崩溃)



 类似资料:
  • 问题内容: 我在解析Json文件时遇到问题。尝试解析一个Json文件: 这是我为其定义的两个结构。 暂停结构: AttachedModel模型结构: 然后,我为其创建一个键和一个函数: 在功能上: 这是输出 问题是,即使有数据,该行也始终为假,并且转到“ 有人可以告诉我这里的问题在哪里吗? 问题答案: 为您的json创建此模型类: 然后,您可以像这样解析它:

  • 问题内容: 我正在尝试解析如下的JSON 到[[“ Jack”,“ Jones”,“ Rock”,“ Taylor”,“ Rob”],[“ Rose”,“ John”],[“ Ted”]]的数组 这是数组的数组。 我尝试了下面的代码 当我打印“人”时,我得到o / p为 我很困惑当“人物”重复3次时如何解析 尝试在UITableView中显示内容,其中第一个单元格具有“ Jack” ..“ Rob

  • 问题内容: 有没有人能够找到一种在Swift 3中解析JSON文件的方法?我已经能够获得返回的数据,但是在将数据分解为特定字段方面我没有成功。我会发布示例代码,但是我经历了很多不同的方法,但是都没有成功。我想解析的基本格式是这样的。提前致谢。 问题答案: 你试过了吗? Swift有时会产生一些非常奇怪的语法。 JSON对象层次结构中的所有内容最终都被包装为可选(即)。下标返回一个非可选的。对于此J

  • 问题内容: 我正在尝试解析JSON但收到此错误: 在没有更多上下文的情况下,表达类型不明确 我的代码是: 在没有尝试捕获的情况下,在Xcode 6.4中可以正常工作,但是在Xcode 7中则无法工作。 问题答案: 不要为已解码对象声明类型,因为您希望它是an,并且您正在执行转换来做到这一点。 另外,最好将零选项用于NSJSONSerialization而不是随机选项。 在我的示例中,我还使用了一个

  • 如有任何帮助,将不胜感激。

  • 问题内容: 输出: 我有api调用返回的结果,它就像对象数组(json数组)的复杂格式。我需要通过golang解析该结果,我该如何实现?以下数据是我的结果,它是从api调用获取的。 问题答案: 您仅错过了一点:您需要导出结构的字段: 它将起作用(在Go Playground上尝试): 请注意,JSON文本包含带有小写字母文本的字段名称,但是包足够“聪明”以匹配它们。如果它们完全不同,则可以使用st