使用SwiftyJSON解析JSON

时间:2015-07-15 19:01:16

标签: json swift swifty-json

我在使用SwiftyJSON解析以下JSON文件时遇到问题。我环顾网络,尝试了不同的建议解决方案,没有运气。

这是JSON:

{'info-leag':{'Status':1,'Name':'Testing Name','url-lig':'test.testing.com','uid':'12345'}}

我的相关代码:

//initializes request
    let request = NSURLRequest(URL: url!)
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.currentQueue()) { response, maybeData, error in
        if let data = maybeData {

            let json = JSON(data: data)


            //stores data as UTF8 String
            let contents = NSString(data:data, encoding:NSUTF8StringEncoding)

第一部分似乎工作正常,我能够获取JSON并将其保存为数据,在底部我将其转换为字符串以确保我获得正确的信息,然后我将其打印到确保。

我尝试过不同的事情:

let name = json["info-league"]["Name"] //can't seem to get the context

我正在尝试将Name和uid保存为2个字符串以及将Status保存为int。

谢谢!

2 个答案:

答案 0 :(得分:2)

一旦你使你的JSON有效:

  

{“info-league”:{“状态”:1,“名称”:“测试名称”,“url-lig”:“test.testing.com”,“uid”:“12345”}} < / p>

你将能够使用你的例子,它可以工作(我刚刚测试过):

let name = json["info-league"]["Name"]

但最好使用SwiftyJSON类型:

let name = json["info-league"]["Name"].string
let status = json["info-league"]["Status"].int

因此您的变量属于已知类型供以后使用。

如果你不这样做,它们将是JSON类型,由SwiftyJSON创建的类型,你将不得不在以后强制转换它们(不是问题,取决于你在代码中的组织方式)

答案 1 :(得分:0)

尝试:

let name = json["info-league"]["Name"].string