简体   繁体   English

如何快速解析从Web服务返回的JSON

[英]How to parse JSON returned from a webservice in swift

Hey i am new to swift and I need to parse this JSON and get the value of "name" returned from a webservice: 嘿,我是Swift的新手,我需要解析此JSON并获取从Web服务返回的“名称”的值:

{name = "Sameer Hussain";}

Here is my code so far: 到目前为止,这是我的代码:

    var url: NSURL = NSURL(string: "http://xxxxxxxxx.com/xxxxx/xxxx.php")!
    var request:NSMutableURLRequest = NSMutableURLRequest(URL:url)
    var bodyData = "data=something"
    request.HTTPMethod = "POST"
    //request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding);
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
    {
            (response, data, error) in
           // println(data)
            var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
            //println(strData)
            var err1: NSError?
            var json2 = NSJSONSerialization.JSONObjectWithData(strData!.dataUsingEncoding(NSUTF8StringEncoding)!, options: .MutableLeaves, error:&err1 ) as! NSDictionary!
            println("\(json2)")
    }

From the code above it seems like your data is being saved within the json2 variable. 从上面的代码看来,您的数据似乎保存在json2变量中。 To retrieve a value from that variable you can try something like this. 要从该变量中检索值,您可以尝试类似的方法。

var userName: String?
var userAge: Int?
var userEmail: String?

if let parseJSON = json2
            {
                 userName = parseJSON["name"] as? String
                 userAge  = parseJSON["age"] as? Int
                 userEmail = parseJSON["email"] as? String
            }

The above would work if your returned JSON looks something like this: 如果您返回的JSON如下所示,则上述方法将起作用:

            {
                "name": "John"
                "age": "21"
                "email": "john@gmail.com"

            }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM