在Swift 3中进行JSON解析
有没有人能够找到一种方法来解析Swift 3中的JSON文件?我已经能够获得数据返回,但是当将数据分解成特定字段时,我不成功。我会发布示例代码,但我已经经历了这么多不同的方法不成功,没有保存任何。我想解析的基本格式是这样的。提前致谢。
{ "Language": { "Field":[ { "Number":"976","Name":"Test" },{ "Number":"977","Name":"Test" } ] } }
你有没有尝试过JSONSerialization.jsonObject(with:options :)?
var jsonString = "{" + ""Language": {" + ""Field":[" + "{" + ""Number":"976"," + ""Name":"Test"" + "}," + "{" + ""Number":"977"," + ""Name":"Test"" + "}" + "]" + "}" + "}" var data = jsonString.data(using: .utf8)! let json = try? JSONSerialization.jsonObject(with: data) Swift有时会产生一些非常奇怪的语法。 if let number = json?["Language"]??["Field"]??[0]?["Number"] as? String { print(number) } JSON对象层次结构中的所有内容最终都被包装为可选(即AnyObject?)。阵列< T>下标返回一个不可选的T.对于包含在可选的数组下标中的JSON,返回Optional< AnyObject> ;.然而,词典< K,V>下标返回可选的< V> ;.对于这个JSON,下标返回非常奇怪的样子 > json是可选的< AnyObject>。 可选的< String>然后由if语法用于产生一个String。 最后注意:迭代字段数组看起来像这样。 for field in json?["Language"]??["Field"] as? [AnyObject] ?? [] { if let number = field["Number"] as? String { print(number) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |