簡體   English   中英

在Swift 4中從PHP解析JSON

[英]Parsing JSON from PHP in Swift 4

使用Swift 4從PHP輸出頁面加載JSON時出現錯誤。

注意:已檢查PHP腳本,並且可以正常工作

let myUrl = URL(string: "http://localhost/swift/signin_up/login.php");
var request = URLRequest(url:myUrl!)
request.httpMethod = "POST"// Compose a query string
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
DispatchQueue.main.async {
    let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in
        if error != nil {
            print("error=\(error!)")
            return
        }

        // You can print out response object
        print("response = \(response!)")
        print("==================================")
        //Let's convert response sent from a server side script to a NSDictionary object:
        do {
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary

            if let parseJSON = json {
                print(parseJSON)
            }
        } catch {
            print(" error:\(error)")
        }
    }
    task.resume()

我從Xcode收到此錯誤消息:

錯誤:錯誤域= NSCocoaErrorDomain代碼= 3840“ JSON文本不是以數組或對象開頭,並且沒有允許設置片段的選項。” UserInfo = {NSDebugDescription = JSON文本不是以數組或對象開頭,並且沒有允許設置片段的選項。}

當我將選項更改為:

options: [.mutableContainers, .allowFragments]

我收到此錯誤消息:

錯誤:錯誤域= NSCocoaErrorDomain代碼= 3840“垃圾在結尾。” UserInfo = {NSDebugDescription =垃圾末。}

這是我測試的PHP輸出:

{"id":"1","email":"aa","password":"aa"}

在數據庫服務器中設置character_set時請謹慎選擇(utf8_unicode_ci)以在使用時獲取正確的json格式

json_encode(//json variable);

在PHP中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM