将 JSON 响应保存为变量以使用 SwiftyJSON 反序列化

Posted

技术标签:

【中文标题】将 JSON 响应保存为变量以使用 SwiftyJSON 反序列化【英文标题】:Save JSON Response as Variable to Deserialise with SwiftyJSON 【发布时间】:2017-01-23 11:18:41 【问题描述】:

我将使用 SwiftyJSON 或 EasyFastMapping 将 JSON 数据反序列化为变量和常量,但我不确定如何将整个 JSON 文件保存到它自己的对象中,如果可能的话。

我将使用 Alamofire 来处理 GET 请求并下拉 JSON 数据,是否可以这样做?

我希望它如何工作: 1. Alamofire拉取JSON数据

    Alamofire 将数据放入对象中

    SwiftyJSON 访问下载的数据并允许我将数据的各个部分放入单独的变量和常量中。

【问题讨论】:

【参考方案1】:

您可以查看SwiftyJSON 和Alamofire 的文档,您会发现很多示例。

来自 Alamofire 自述文件:

Alamofire.request("https://httpbin.org/get").responseJSON  response in
debugPrint(response)

if let json = response.result.value 
    print("JSON: \(json)")

来自 SwiftJSON 自述文件:

    let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string 
  //Your implementation here

您还可以创建一个单独的响应对象并将所有响应 JSON 反序列化到该对象中。另请查看Foundation 框架中内置的JSONSerialization API。

【讨论】:

太好了,谢谢。看了文档还是看不懂,现在分出来了,现在明白了! 看看 ObjectMapper 框架。它为您提供了可映射的对象,然后您可以使用这些对象来序列化响应。

以上是关于将 JSON 响应保存为变量以使用 SwiftyJSON 反序列化的主要内容,如果未能解决你的问题,请参考以下文章

将 Alamofire 结果保存为变量?

Laravel - 从 JSON 数组创建对象以将其保存在 SQL 数据库中

将async函数的结果保存到全局变量

如何将用户登录的 JSON 响应保存到 Core Data 中以跟踪 Swift 中的用户状态?

将 json 转换为石墨烯 graphql 响应

将大型 JSON 直接从 Java 中的 REST API 响应流保存为文本