ios - 如何将此 swiftHTTP 函数的 json 属性作为字符串返回?

标签 ios swift text-analysis mashape

我正在尝试学习如何将 swiftHTTP 与 mishap api ( https://www.mashape.com/textanalysis/textanalysis ) 一起使用。到目前为止,这是我的代码,

import SwiftHTTP

    func splitSentenceIntoWordsUsingTextAnalysis (string: String) -> String {
    var request = HTTPTask()
    var params = ["text": "这是中文测试"] //: Dictionary<String,AnyObject>
    //request.requestSerializer = JSONRequestSerializer()
    request.requestSerializer.headers["X-Mashape-Key"] = "My-API-Key"
    request.requestSerializer.headers["Content-Type"] = "application/x-www-form-urlencoded"
    request.responseSerializer = JSONResponseSerializer()
    request.POST("https://textanalysis.p.mashape.com/segmenter", parameters: params, success: {(response: HTTPResponse) in if let json: AnyObject = response.responseObject { println("\(json)") } },failure: {(error: NSError, response: HTTPResponse?) in println("\(error)") })

// {
// result = "\U4f60 \U53eb \U4ec0\U4e48 \U540d\U5b57";
// }

return ?? // I want to return the "result" in the json as a string.

}

如何将 json 中的“结果”作为字符串返回?

最佳答案

SwiftHTTP 和 NSURLSession 一样,在设计上是异步的。这意味着您不能只从该方法返回。

import SwiftHTTP

func splitSentenceIntoWordsUsingTextAnalysis (string: String, finished:((String) -> Void)) {
    var request = HTTPTask()
    var params = ["text": "这是中文测试"] //: Dictionary<String,AnyObject>
    //request.requestSerializer = JSONRequestSerializer()
    request.requestSerializer.headers["X-Mashape-Key"] = "My-API-Key"
    request.requestSerializer.headers["Content-Type"] = "application/x-www-form-urlencoded"
    request.responseSerializer = JSONResponseSerializer()
    request.POST("https://textanalysis.p.mashape.com/segmenter", parameters: params, success: {
        (response: HTTPResponse) in
        if let res: AnyObject = response.responseObject {
            // decode res as string.
            let resString = res as String
            finished(resString)
        }
        }, failure: {(error: NSError, response: HTTPResponse?) in
            println(" error \(error)")
    })
}

然后你会像这样使用它。

splitSentenceIntoWordsUsingTextAnalysis("textToSplit", {(str:String) in
    println(str)
    // do stuff with str here.
})

另请参阅此 Github 问题。

https://github.com/daltoniam/SwiftHTTP/issues/30

关于ios - 如何将此 swiftHTTP 函数的 json 属性作为字符串返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723917/

相关文章:

ios - 停止呈现 PushNotification

iOS – 带平铺背景的分组 UITableView 显示不正确

ios - 从各种标签中获取值并进行简单计算

python - 在 Python 中混合使用不常见的字符

parsing - Rebol:如何将相同的解析规则应用于从 Windows 剪贴板粘贴的多行

ios - 通过手势调整UITableViewCell的大小

android - PhoneGap 忽略设置了特定宽度的视口(viewport)标签?

swift - 为什么我的弹出窗口延迟了(Swift)?

swift - 在用查询中的 MPmedia 项目填充表格之前,如何将数据添加到表格的第一行?

sql - 如何使用 SQL (BigQuery) 计算 TF/IDF