【发布时间】:2018-04-03 10:13:27
【问题描述】:
这是我在 php 中的脚本,有一个 Json 响应
<?php
include "dbconnect.php";
$id = $_POST['id'];
$uname = $_POST['uname'];
try {
$queryExistingBike = "SELECT StatoBici, Username FROM BICI INNER JOIN UTENTE ON utenteKEY = KEYutente WHERE (IdBike = '$id')";
$search = $connection->query($queryExistingBike);
//print_r ($search);
} catch (Exception $ex) {
echo $ex->getMessage();
}
$dati = $search->fetch_assoc();
if ($dati["Username"] == "$uname") {
$dati['Username'] = "true";
} else {
$dati['Username'] = "false";
}
//print_r($dati);
print json_encode($dati);
?>
这是来自 php 脚本的 Json 响应
{"StatoBici":"ok","Username":"false"}
这是快速向 Web 服务发出 http post 请求的代码
func jsonResponse(){
var request = URLRequest(url: URL(string: "http://bike1010.com/webservice/getBikeData.php")!)
request.httpMethod = "POST"
let postString = "id=2017&uname=admin" // Your parameter
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { // check for fundamental networking error
print("error=\(String(describing: error))")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(String(describing: response))")
}
let responseString = try? JSONSerialization.jsonObject(with: data, options:[])
print(responseString)
}
task.resume()
}
Xcode 的输出
Optional({
StatoBici : Ok
Username : Tue
})
【问题讨论】:
-
那么问题是什么?您已经解析了 JSON 并打印了结果。你想达到什么目标?您想将其解析为一个对象,以使用每个结果值作为键?