【问题标题】:Swift 4+SwiftyJson convert/generate objects from JSON automaticallySwift 4+SwiftyJson 自动从 JSON 转换/生成对象
【发布时间】:2018-11-14 09:26:04
【问题描述】:

我正在使用 SwiftyJSON 从我的网络服务中获取 JSON。将其转换为快速对象表示的最简单方法是什么?

我的意思可能是像 http://www.jsonschema2pojo.org/ 这样的网站,它对 Java 也是如此。

到目前为止,我发现生成器可以使用 String 或 Dictionary 但不能使用 SwiftyJSON?

谢谢

【问题讨论】:

  • 最好的选择是摆脱 SwiftyJSON 并使用内置的 JSONDecoder 和 Decodable。
  • 我认为你可能是对的

标签: ios json swift parsing swifty-json


【解决方案1】:

您可以看到JSON Master,在这里您可以直接从JSONSwiftyJSONCodable 框架或经典Dictionary 生成代码。也可以生成structclass

它还支持 Java、Kotlin 和 C#

【讨论】:

  • 比在快速谷歌搜索中找到的其他选项要好得多。除了这个,没有一个选项实际上提供了完整的 encode() 和 decode() 支持,我至少尝试了 5 个。
【解决方案2】:

您可以使用json4swift

在线 JSON 到 Swift 模型生成器

在这个科技时代,我们的动机很简单;方便和自动化,使用 JSON for Swift 应该不再复杂。在不依赖其他工具和框架的情况下,这个免费的在线实用程序将您的 Web 服务响应映射到适当的模型。它使使用 JSON 变得更容易和易于管理。

免费实用程序

这个在线免费实用程序可生成兼容 Swift 2.0 和 Swift 4.0 的模型,可以在您的项目中轻松拖动和使用。

地图响应

只需一行即可将您的网络服务响应与您的模型进行映射。

字典表示

如果您需要具有当前状态和相同键值对的对象,可以随时将这些对象称为字典。

【讨论】:

    【解决方案3】:

    假设您有一个Student Model,并且您想将JSON Object 映射到Student Object。你可以这样试试:

    struct Student {
    
      let id: Int!
      let name: String!
    
      init(param: JSON) {
        id = param["id"].intValue
        name = param["name"].stringValue
      }
    
      /* JSON Response
      {
        "id": 168,
        "name": "KoingDev"
      }
      */
    
    }
    

    希望有用! :)

    【讨论】:

    • 好吧,如果你有带有少量参数的简单类,那就太好了。我有 50 个,每个都有几十个参数。因此通常我使用生成工具来做这样的事情。
    猜你喜欢
    • 2016-03-02
    • 2015-12-10
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多