JSort 0.6

JSort 0.6

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年10月
SwiftSwift 版本3.0
SPM支持 SPM

Zeke Abuhoff 维护。



JSort 0.6

  • 作者:
  • Ezekiel Abuhoff

Logo

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
}

许可证

MIT 许可证