使用 JSON 从 MYSql 获取数据到我的 iOS 应用程序

Posted

技术标签:

【中文标题】使用 JSON 从 MYSql 获取数据到我的 iOS 应用程序【英文标题】:Getting data from MYSql into my iOS app with JSON 【发布时间】:2012-12-15 07:08:44 【问题描述】:

好的,我发现了一些关于如何将数据从 mysql 数据库获取到 ios 应用程序的问题,但我只是在这里询问一些最佳实践。我知道这些都可以是单独的问题,但我希望可以以相互关联的方式回答它们。

我是否正确理解为了能够将数据输入 iOS 应用程序 - 我需要首先生成一个 JSON 文件,将其存储在服务器上,然后让应用程序下载此文件??

如果前面的答案是否定的,那是否意味着我可以即时提取数据?

最后我看到了创建 JSON 文件的 php 示例,但 iOS 是在 Objective-c 中的。这是否意味着我需要加载 UIWebView 才能加载生成文件的 PHP 页面?

我有什么:

我有一个MYSql数据库——它是通过PHPMyAdmin设置的,所以我对数据库的创建过程还不够熟悉。我会调查的。

我也可以从 PHPMyAdmin 导出 JSON 文件,但这在 iOS 应用中对我没有好处。

我还对从 JSON 文件到 iOS 应用程序的解析进行了排序,但我希望能够即时执行此操作,而不是创建潜在的数百个文件。

我希望有人可以在这里帮助我:-)

我不一定要代码,但如果忽略它会很生气:-)

【问题讨论】:

【参考方案1】:

问题是没有任何 iOS 库可以直接连接到 MySQL 服务器;无论如何,你真的不想这样做。因此,您需要一个能够以您的 iOS 应用程序可以理解的格式发送数据的中间服务器。请注意,这并不意味着数据必须是 JSON 格式。但是使用 JSON 作为数据格式非常容易。大多数语言都支持从其原生对象格式生成 JSON。

一旦您的服务器能够以您喜欢的格式发送数据,您就需要编写一些方法让您的 iOS 应用程序检索它。您不必为此使用 UIWebView。如前所述,NSURLConnection 框架很容易使用来发出这样的请求。但是,在发出网络请求时还有很多其他因素需要考虑,其他人已经为您完成了大部分工作。我喜欢将AFNetworking 框架与JSONKit 结合使用。 AFNetworking 使得对远程 Web 服务的异步调用非常容易,在我看来 JSONKit 比 NSJSONSerialization 更好。

【讨论】:

酷,我会再研究一下:-)谢谢你的回答:-) 这个答案值得否决? 点头 只是请一两个投反对票的人解释一下。【参考方案2】:

我将数据从 MySQL 检索到我的 iOS 应用程序是:

    在您的服务器上创建一个 PHP 文件并为 GET 方法做好准备(您将从 iOS 应用程序发送数据) 从您的 iOS 应用向您的 php 文件发送请求,例如:“www.yourdomain.com/data.php?name=...” 处理您的 php 文件和echo json 输出中的信息。 当connectionDidFinishLoading: 使用NSJSONSerializationNSData 转换为数组时。 对输出信息做任何你想做的事

我就是这样做的。我不熟悉其他方法。

【讨论】:

【参考方案3】:

PHP(和任何其他服务器端语言)可以从 MySQL 数据库中获取数据,并将其作为 JSON 即时输出到任何客户端。无需事先将 JSON 保存到磁盘。当然,从客户的角度来看,确实没有根本区别(除了数据将始终是数据库中内容的最新表示)。

您也不必使用 UIWebView。有很多方法可以使用 Objective-C 发出 HTTP 请求,但您可能希望查看类似于 NSURLConnectionsendSynchronousRequest:returningResponse:error: 方法的内容(我更喜欢在异步块中使用同步方法,但是这不是唯一的方法)。您可以找到许多关于如何执行类似操作的教程,以及用于简化流程的更高级别的库。

【讨论】:

以上是关于使用 JSON 从 MYSql 获取数据到我的 iOS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何将json数组插入mysql数据库

从 MYSQL 获取数据并显示在 JSON 文件中

如何使用 HTTP:PostAsync() 将 JSON 数据提交到我的服务器? (机器人)

iOS 编程,获取 JSON 数据

插入和Laravel从MySQL领域获取信息

如何将android与php mysql连接[重复]