如何使用Swift 2.1和Xcode从PHP文件中获取JSON数据


How can I fetch JSON data from a PHP file using Swift 2.1 and Xcode?

我一直在尝试从我的一个数据库中提取数据,以显示在我正在使用swift 2.1和Xcode制作的移动应用程序上。我已经建立了一个mysql数据库,并在我的服务器上运行了一个php脚本,该脚本从该数据库中回声JSON编码的数据。

我的swift应用程序可以将数据发布到PHP脚本并将数据发送到数据库,但我无法从PHP脚本中获取数据以在应用程序上显示。我已经尝试了大多数方法,但它们似乎不适用于最新版本的swift。

这是我的代码:

func dataOfJson(url: String) -> NSArray {
    let data = NSData(contentsOfURL: NSURL(string: url)!)
    let result: NSArray = []
    do {
        let json = try (NSJSONSerialization.JSONObjectWithData(data!, options: [NSJSONReadingOptions.MutableContainers, NSJSONReadingOptions.AllowFragments]) as? NSDictionary)
        if let parseJSON = json {
            let resultValue = parseJSON["id"] as? String?
            print(resultValue)
        }
    } catch let error as NSError {
        print(error.localizedDescription)
    }
    return result
}

我的PHP文件的响应结果如下:

[{"id":"alex"},{"id":"jeff"},{"id":"jack"}]

如何提取JSON数据并将其存储在swift变量中?

试试这个

func dataOfJson(url: String) -> Array<Dictionary<String,String>>? {
    let data = NSData(contentsOfURL: NSURL(string: url)!)
    do {
        let jsonArray = try NSJSONSerialization.JSONObjectWithData(data!, options: [NSJSONReadingOptions.MutableContainers, NSJSONReadingOptions.AllowFragments]) as? Array<Dictionary<String, String>>
        print("json := '(jsonArray)")
        return jsonArray;
    } catch let error as NSError {
        print(error.localizedDescription)
        return nil;
    }
}

我已经用下面的代码进行了测试,运行良好

let string = "[{'"id'":'"alex'"},{'"id'":'"jeff'"},{'"id'":'"jack'"}]";
let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let jsonArray = try NSJSONSerialization.JSONObjectWithData(data!, options: [NSJSONReadingOptions.MutableContainers, NSJSONReadingOptions.AllowFragments]) as? Array<Dictionary<String, String>>
print("json := '(jsonArray)")
for object in jsonArray! {
            print("id := '(object["id"])");
}