使用 Swift (NSArray) 解析 JSON

Posted

技术标签:

【中文标题】使用 Swift (NSArray) 解析 JSON【英文标题】:Parsing JSON with Swift (NSArray) 【发布时间】:2017-05-03 15:40:51 【问题描述】:

我正在尝试使用 Swift 3 在 Xcode 中解析 JSON 文件。我的问题是获取“值”14.2。我得到的错误是"Type Any has no subscript member".

这是我的 NSArray(又名 firstIndex):


level = 2;
levelType = hl;
name = t;
unit = Cel;
values = (
    "14.2"
);

这是我的代码:

if let parameters = test["parameters"] as? NSArray 
    let firstIndex = parameters[0]
    //print(firstIndex)
    PROBLEM --> if let values = firstIndex["values"] as? Int 

    

【问题讨论】:

【参考方案1】:

values 的值也是一个数组,用括号表示。

发生错误是因为NSArray 没有提供类型信息。

在 Swift 中,始终使用原生 Array(此处为 [[String:Any]])。

if let parameters = test["parameters"] as? [[String:Any]], let firstIndex = parameters.first 
   if let values = firstIndex["values"] as? [String], let firstValue = values.first  
       print(firstValue) // or Double(firstValue)!
    

【讨论】:

以上是关于使用 Swift (NSArray) 解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 3 中将 JSON 对象解析为 NSArray

Swift json 解析错误:无法将 NSCFConstantString 类型的值转换为 NSArray

Swift 解析 JSON 时出现问题:无法将“__NSCFDictionary”类型的值转换为“NSArray”错误

使用 Swift 解析 JSON

Swift 3:NSArray 元素无法匹配 Swift Array 元素类型

将响应 NSArray 转换为对象数组 swift3