测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年10月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Zeke Abuhoff 维护。
JSort 是一个用于 Swift 中解析 JSON 数据的简单框架。
将您的数据(例如您在 HTTP 响应中获得的数据)传递给 JSort 对象的初始化器。
guard let sortedData = JSort(responseData) else { return }
只要传入的数据包含有效的 JSON,您就会得到一个 JSort 对象。
使用 JSort 对象的类型属性将其内容转换为预期的原生 Swift 类型。
guard let responseDictionary = sortedData.dictionary else { return }
您还可以使用下标来在转换之前遍历 JSON 到您感兴趣的水平。
let nestedJSON = sortedData["results"][3]["name"]
guard let name = nestedJSON.string else { return }
这就完成了!无需担心 NSJSONSerialization
或处理各种错误。您只需将数据转换为 JSort,然后将 JSort 转换为原生类型。
// This function parses data expected to be a simple dictionary of strings.
func parseDictionary(data: Data) -> [String : String]? {
guard let sortedData = JSort(data) else { return nil }
if let sortedDictionary = sortedData.dictionary as? [String : String] {
return sortedDictionary
}
return nil
}
// This function uses JSort's 'isValid' property to check if JSON data matches the expected structure.
func validateJSON(data: Data) -> Bool {
guard let _ = JSort(data) else { return false }
guard validJSON["items"]["businesses"][0]["contact_info"].isValid else { return false }
guard validJSON["items"]["businesses"][0]["menu"].isValid else { return false }
return true
}
// This function relegates all parsing issues to the error-catching system.
// The error type 'APIError' is presumably defined elsewhere.
func arrayFromJSON(data: Data) -> throws [Int] {
guard let intArray = JSort(data)?.array as? [Int] else { throw APIError.parsing }
return intArray
}