Swift中的JSON(De)Serialization

现在,我已经启动并运行了Node.js服务器,接下来我将继续研究应用程序的客户端。 我必须解决的第一个任务是进行API调用和处理JSON响应。 在本文中,我将引导您完成代码以完成此任务。 第一步是创建可JSONifiable的类。

值得庆幸的是,很多功能是预先内置在swift中的。 在这里,我将使用JSONEncoder和JSONDecoder处理对象的序列化和反序列化。 我添加了两个函数来封装它,encode()可以将一个对象转换为可以传输到服务器的JSON数据,decode()可以将数据转换为Swift对象。 您可以在下面看到如何使用它的示例。

下一部分将使用此Transmittable协议使用JSON主体对服务器进行API调用,并接收和处理响应数据。

这个APICaller类的主要功能是对服务器上的端点执行API调用。 该函数采用一个端点(“ / users”),一个方法(“ POST”),一个请求主体(一个User对象)以及响应类型(User.self)。 它调用createURLRequest()来格式化URLRequest对象。 然后,它使用URLSession调用后端。 接下来,我们检查HTTP响应代码。 除200(或200s之外的其他任何代码)之外的任何代码均表示呼叫成功通过了网络,但是服务器引发了错误。 如果所有检查都通过,我们将反序列化服务器返回的数据并调用完成处理程序。

在上面的示例中,我们使用User对象主体对/ users端点进行POST调用。 在这种情况下,我们还将在服务器的响应中返回User对象。

希望这对您的项目有所帮助。 始终欢迎提出问题,评论和更正。