使用 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:
使用NSJSONSerialization
将NSData
转换为数组时。
对输出信息做任何你想做的事
我就是这样做的。我不熟悉其他方法。
【讨论】:
【参考方案3】:PHP(和任何其他服务器端语言)可以从 MySQL 数据库中获取数据,并将其作为 JSON 即时输出到任何客户端。无需事先将 JSON 保存到磁盘。当然,从客户的角度来看,确实没有根本区别(除了数据将始终是数据库中内容的最新表示)。
您也不必使用 UIWebView。有很多方法可以使用 Objective-C 发出 HTTP 请求,但您可能希望查看类似于 NSURLConnection
的 sendSynchronousRequest:returningResponse:error:
方法的内容(我更喜欢在异步块中使用同步方法,但是这不是唯一的方法)。您可以找到许多关于如何执行类似操作的教程,以及用于简化流程的更高级别的库。
【讨论】:
以上是关于使用 JSON 从 MYSql 获取数据到我的 iOS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章