Текст JSON не начинался с массива или объекта, и опция, позволяющая не устанавливать фрагменты — Swift 3.0

У меня вопрос.

Как читать данные JSON и отображать их UILabel? Ошибка говорит

«Текст JSON не начинался с массива или объекта, и опция, позволяющая не устанавливать фрагменты»

У меня есть этот код PHP, который извлекает данные JSON, как показано ниже:

{"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";
}
?>

Но в коде x я не могу напечатать данные JSON и не могу отобразить их на UILabel _loginLbl. Может ли кто-нибудь помочь мне в этом вопросе?

ViewController.swift

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()
}
}

Благодарю.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]