Php JSON文本没有以数组或对象开头,并且没有设置允许片段的选项-Swift 3.0
我有个问题 如何读取JSON数据并在标签上显示?错误是 “JSON文本没有以数组或对象开头,并且没有设置允许片段的选项” 我有以下提取JSON数据的PHP代码:Php JSON文本没有以数组或对象开头,并且没有设置允许片段的选项-Swift 3.0,php,json,swift3,xcode8,Php,Json,Swift3,Xcode8,我有个问题 如何读取JSON数据并在标签上显示?错误是 “JSON文本没有以数组或对象开头,并且没有设置允许片段的选项” 我有以下提取JSON数据的PHP代码: {"login":"ID0001"} test.php <?php $connect = mysqli_connect("","","",""); global $connect; if(isset($_POST['login'])) { $login = $_POST['login']
{"login":"ID0001"}
test.php
<?php
$connect = mysqli_connect("","","","");
global $connect;
if(isset($_POST['login'])) {
$login = $_POST['login'];
$sql = "SELECT * FROM table WHERE login='$login'";
$result = mysqli_query($connect, $sql);
if($result && mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_array($result)){
$login_db = $row['login'];
$output = array ('login'=>$login_db);
}
print (json_encode($output));
mysqli_free_result($result);
}
else {
echo "No data found!";
echo mysqli_error($connect);
}
}
else {
echo "No input";
}
?>
谢谢。让我们基本上调试一下您得到的JSON是什么:在哪里执行
打印(“此处的值”)
,执行打印(字符串(数据:数据,编码:.utf8)!)
。
import UIKit
class ViewController: UIViewController {
@IBOutlet var _login: UITextField!
@IBOutlet var _loginLbl: UILabel!
@IBOutlet var sendButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func sendData(_ sender: Any) {
let login = _login.text
if(login == "") {
print("No value entered")
return
}
let postString = "login=\(login)"
print("JSON value =\(postString)")
let url = URL(string: "http://localhost/get.php")
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let data = data else {
self._loginLbl.text = "Error data"
print("Error result =\(error)")
return
}
do {
print("Value here")
if let json = try JSONSerialization.jsonObject(with: data) as? [String: String] {
DispatchQueue.main.async {
let loginvalue = json["login"]
self._loginLbl.text = loginvalue;
print(json)
}
}
}
catch let parseError
{
print("Catch error: \(parseError)")
self._loginLbl.text = "Catch error";
let responseString = String(data: data, encoding: .utf8)
print("response :\(responseString)")
}
}
task.resume()
}
}