gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:28:34 25 4
gpt4 key购买 nike

我一直在尝试从我的一个数据库中提取数据,以显示在我使用 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"])");
}

关于php - 如何使用 Swift 2.1 和 Xcode 从 PHP 文件中获取 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34525333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com