ios - 从 MySQL 数据库导入 iOS 应用程序中的数据

标签 ios json swift

我正在尝试从 MYSQL 数据库读取一行并将其转换为应用程序中的字符串数组。

我的 PHP 代码生成以下 JSON 输出:

[{
    "Kategorie": "Externals"
}, {
    "Kategorie": "Home"
}, {
    "Kategorie": "Lehrer"
}, {
    "Kategorie": "Oeffnungszeiten"
}, {
    "Kategorie": "Orientierung"
}, {
    "Kategorie": "Schulleitung"
}]

我的应用程序中的函数(使用 Xcode 8 和 Swift 3):

func get()
{
    do{
        let dburl = URL(string: "http://127.0.0.1/index.php")
        let dbdata = try Data(contentsOf: dburl!)
                   
        let json = try JSONSerialization.jsonObject(with: dbdata, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String:AnyObject]
        
        if let arrJSON = json["Kategorie"]
        {
            for indexx in 0...arrJSON.count-1
            {
                let aObject = arrJSON[indexx] 
                TableArray.append(aObject as! String)
            }
        }
    }
    catch let error as NSError{
        print("Failed to load: \(error.localizedDescription)")
    }
}

它没有向我显示任何错误或类似的内容。当我模拟它时,应用程序卡住在我尝试序列化的行。

显而易见的问题是:这里出了什么问题?

最佳答案

问题出在这一行:

let json = try JSONSerialization.jsonObject(with: dbdata, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String:AnyObject]

您的数据是一个[String:Any]字典数组。但您将其转换为 [String:AnyObject]

将该行更改为:

let json = try JSONSerialization.jsonObject(with: dbdata, options: JSONSerialization.ReadingOptions.mutableContainers) as! [[String:Any]]

当然,之后您还必须修改其余的数据解析代码,因为您需要循环遍历数组以从每个字典实例中获取值。

关于ios - 从 MySQL 数据库导入 iOS 应用程序中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43016987/

相关文章:

ios - Swift 为 View 背景绘制弧线

c# - PostAsJsonAsync 返回 null

java - 使用 JSON 安全地将数据从 Java 传递到 PHP 以及从 PHP 传递到 Java 的最佳实践

ios - 如何从 AppDelegate 访问 ViewController 变量

ios - 单细胞还是多细胞?

javascript - iOS:WKWebView 中的 Javascript 代码在从照片库中选择照片并上传到服务器之前出现 “query cancelled” 错误

iphone - 如何在 uisearchbar ios 中添加 DropDownComobo

ios - Gps(位置)开启和关闭功能

javascript - 遍历 JSON 数组 - 正确格式化

ios - 无法将类型 'listOfContacts' 的值转换为预期参数类型 'UIViewController'