Xcode,PHP;使用SwiftyJSON master从PHP/MySQL检索数据时遇到问题
我正在用Xcode和Swift开发一个iOS应用程序 我需要从我的应用程序中的MySQL数据库加载一些数据。我认为使用JSON这样做是合理的(或者有什么反对它的吗?) 为了使它更容易,我想使用 我在上找到了此工作代码,因此:Xcode,PHP;使用SwiftyJSON master从PHP/MySQL检索数据时遇到问题,php,ios,mysql,swift,xcode,Php,Ios,Mysql,Swift,Xcode,我正在用Xcode和Swift开发一个iOS应用程序 我需要从我的应用程序中的MySQL数据库加载一些数据。我认为使用JSON这样做是合理的(或者有什么反对它的吗?) 为了使它更容易,我想使用 我在上找到了此工作代码,因此: class ViewController: UIViewController { var dict = NSDictionary() @IBOutlet weak var authorLbl: UILabel! @IBOutlet weak va
class ViewController: UIViewController {
var dict = NSDictionary()
@IBOutlet weak var authorLbl: UILabel!
@IBOutlet weak var quoteLbl: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let urlString = "http://api.theysaidso.com/qod.json"
if let url = NSURL(string: urlString) {
if let data = try? NSData(contentsOfURL: url, options: []) {
let json = JSON(data: data)
print(json)
let auther = json["contents"]["quotes"][0]["author"].stringValue
let quote = json["contents"]["quotes"][0]["quote"].stringValue
authorLbl.text = auther
quoteLbl.text = quote
}
}
}
}
但是当用我自己的PHP脚本尝试时,它不起作用
我认为这是因为不同的输出。我找到的SO帖子中的(工作)PHP脚本如下所示:
{“success”:{“total”:1},“contents”:{“quotes”:[{“quote”:“我把速溶咖啡放在微波炉里,几乎回到了时间。”,“length”:“70”,“author”:“Steven Wright”,“tags”:[“coffee”,“mobile”,“the times”,“time”],“category”:“mobily”,“id”:“LvFg2QsKr_FoCH_lwryQ5geF”}
使用我自己的PHP scrip输出如下:
[{“a”:“约翰·伊夫”,“b”:“库比蒂诺”,“c”:“绿色”,“d”:“苹果”},{“a”:“莎拉·琼斯”,“b”:“柏林”,“c”:“红色”,“d”:“梨”}]
语法似乎完全不同
这是我的PHP脚本/代码:
<?php
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
include "$root/config.php";
$query = "SELECT * FROM users";
$stmt = $pdo->prepare($query);
$stmt->execute();
$userData = array();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$userData[] = $row;
}
echo json_encode($userData);
?>
我做错了什么?我如何影响语法?还是另一个问题
附言:使用这个库是合理的还是不合理的?更新
php文件返回正确的json格式。您可以通过以下方式访问数据:
print(json[0]["a"]) // John Eve
print(json[0]["b"]) // Cupertino
// ...
print(json[1]["a"]) // Sarah Jones
print(json[1]["c"]) // Red
分析JSON语法
为了理解前两个JSON语法之间为什么存在差异,您需要了解
我将试着非常简短地向你们解释这一点。
我知道我不擅长用英语写作,但我会尽力的
花括号
json语法中的花括号表示json对象,如:
{"a":"John Eve","b":"Cupertino","c":"Green","d":"Apple"}
{"a":"Sarah Jones","b":"Berlin","c":"Red","d":"Pear"}
方括号
json语法中的方括号表示json对象数组,如:
[
{"a":"John Eve","b":"Cupertino","c":"Green","d":"Apple"},
{"a":"Sarah Jones","b":"Berlin","c":"Red","d":"Pear"}
]
因此,在theysaidso的例子中,JSON语法表示单个JSON对象,即: 上面的JSON对象内部有两个JSON对象,第一个对象是:
"success":{"total":1}
第二个代表内容:
在JSON对象的内容中,有一个名为quotes的JSON对象,它包含一个JSON对象数组:)
因此,当您希望访问该嵌套json对象的对象时,可以执行以下操作:
json["contents"]["quotes"][0]["author"].stringValue
json[0]["a"]
在上面的代码中,您说:
返回名为“author”[“author”]-的字符串类型属性,该属性位于索引为0-[“quotes”][0]的json对象中,位于内容对象-[“contents”]-在我的json对象-json-中的引号数组中
对于您的情况,您有一个json对象,它是json对象的数组: 因此,当您希望访问该嵌套JSON对象的对象时,可以执行以下操作:
json["contents"]["quotes"][0]["author"].stringValue
json[0]["a"]
在上面的代码中,您说:
返回一个名为“a”-[“a”]-的属性,该属性位于json对象数组-json-中索引为0-json[0]的json对象中
我希望你能理解我想说的话。更新 php文件返回正确的json格式。您可以通过以下方式访问数据:
print(json[0]["a"]) // John Eve
print(json[0]["b"]) // Cupertino
// ...
print(json[1]["a"]) // Sarah Jones
print(json[1]["c"]) // Red
分析JSON语法
为了理解前两个JSON语法之间为什么存在差异,您需要了解
我将试着非常简短地向你们解释这一点。
我知道我不擅长用英语写作,但我会尽力的
花括号
json语法中的花括号表示json对象,如:
{"a":"John Eve","b":"Cupertino","c":"Green","d":"Apple"}
{"a":"Sarah Jones","b":"Berlin","c":"Red","d":"Pear"}
方括号
json语法中的方括号表示json对象数组,如:
[
{"a":"John Eve","b":"Cupertino","c":"Green","d":"Apple"},
{"a":"Sarah Jones","b":"Berlin","c":"Red","d":"Pear"}
]
因此,在theysaidso的例子中,JSON语法表示单个JSON对象,即: 上面的JSON对象内部有两个JSON对象,第一个对象是:
"success":{"total":1}
第二个代表内容:
在JSON对象的内容中,有一个名为quotes的JSON对象,它包含一个JSON对象数组:)
因此,当您希望访问该嵌套json对象的对象时,可以执行以下操作:
json["contents"]["quotes"][0]["author"].stringValue
json[0]["a"]
在上面的代码中,您说:
返回名为“author”[“author”]-的字符串类型属性,该属性位于索引为0-[“quotes”][0]的json对象中,位于内容对象-[“contents”]-在我的json对象-json-中的引号数组中
对于您的情况,您有一个json对象,它是json对象的数组: 因此,当您希望访问该嵌套JSON对象的对象时,可以执行以下操作:
json["contents"]["quotes"][0]["author"].stringValue
json[0]["a"]
在上面的代码中,您说:
返回一个名为“a”-[“a”]-的属性,该属性位于json对象数组-json-中索引为0-json[0]的json对象中
我希望你能理解我的意思。我想你误解了我的问题。我的PHP脚本在Swift中没有输出。它认为这是因为我的JSON字符串的语法与“theysaidso”的JSON字符串不同。例如,我的JSON字符串只有一对
[{}]
。“Theysaidso的”JSON字符串多次出现这个字符{
。你明白我的意思吗?@David,我很高兴。@David我在答案中添加了更多细节。我想你误解了我的问题。我的PHP脚本在Swift中没有得到任何输出。我想这是因为我的JSON字符串的语法与“Theysaidso”不同。”JSON字符串。例如,我的JSON字符串只有一对[{}]
“Theysaidso的”JSON字符串多次使用这个字符{
。你明白我的意思吗?@David我很乐意。@David我在答案中添加了更多细节。