苹果在使用 URLSession.shared.dataTask 后更改了我的 JSON 格式

apple change my JSON format after using URLSession.shared.dataTask

我是绿色的 swift 3. 为了在 mysql 服务器和 iOS 之间传输数据,我尝试通过 URLSession.Shared.dataTask 连接我的服务器和设备。 但是格式变了。

来自(网页显示的格式)

[{"id":"1","names":"abc","pws_1":"password","pws_2":"pw"}]  

到(Xcode中显示的格式)

Optional(<__NSSingleObjectArrayI 0x6200000039e0>( 
{
    names = abc;  
    id = 1;  
    "pws_1" = password; 
    "pws_2" = pw;  
} 
)
)

如何从这个 "JSONarray" 接收数据?

P.S。 这是我的代码:

let url = URL(string: "http://")
    URLSession.shared.dataTask(with:url!, completionHandler: {(data, response, error) in

        if error != nil {
            print(error)
        } else {
            do {

                let json = try? JSONSerialization.jsonObject(with: data!, options: [])
                if json != nil{
                    if let Jtwo = json as? [String: Any] {
                        if let names = Jtwo["names"] as? String {
                            print(names)
                        }else{
                            print(Jtwo)
                        }
                    }else{
                        print(json)
                    }
                }else{
                    print("json nil")
                }




                //self.statusL.text = names

            } catch let error as NSError {
                print(error)
            }
        }

    }).resume()

您可以像这样解析和访问您的 JSON Array

URLSession.shared.dataTask(with: request) {data, response, error in
    if error == nil {
        do {

            let jsonObj = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? [[String:Any]]
            if let user = jsonObj.first {
                print(user["names"])
                print(user["id"])
                print(user["pws_1"])
                print(user["pws_2"])
                DispatchQueue.main.async {
                     self.label.text = user["names"]
                }

            }
        }
        catch {  
            print(error)
        }
    }
}.resume()