ASONofire响应包含JSON内容与SwiftyJSON一起使用之前的文本

时间:2015-04-04 17:25:06

标签: json swift alamofire

我正在使用Alamofire请求JSON对象并使用SwiftyJSON访问它。

我的要求是:

// JSON webservice ...
[
    {
        "message":"Please connect"
    }
]

如您所见,我需要删除字符串“// JSON webservice ...”,因为它实际上不是有效的JSON对象。 请注意,我正在使用.responseString,否则我无法删除字符串部分。

所以为了删除我正在做的字符串:

let jsonString = data?.stringByReplacingOccurrencesOfString("// JSON webservice ...", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)

现在我可以使用我的字符串:

var json = SwiftyJSON.JSON(jsonString!)

我可以打印json:

println(json)

但无论我打印什么值

println(json[0]["message"].string)

是零。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案:

  • 我们从.responseString方法
  • 获取字符串(数据)
  • 我们删除导致JSON对象序列化失败的部分
  • 我们将字符串转换为NSData并尝试序列化我们的JSON对象:

    let data = jsonString?.dataUsingEncoding(NSUTF8StringEncoding)
    let jsonData = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSArray?
    
  • 现在应该没问题,尝试打印JSON对象的值时一切正常

    var json = SwiftyJSON.JSON(jsonData!)
    println(json[0]["message"])
    

它打印正确的值。