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

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

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

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

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

我有什么:

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

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

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

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

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

【问题讨论】:

    标签: php mysql objective-c ios json


    【解决方案1】:

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

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

    【讨论】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        • 2016-09-22
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-11
        相关资源
        最近更新 更多