我编写了以下函数,以使用Alamofire在macOS应用中执行GET请求:
func getContent(room: String) -> String {
let scriptUrl = "https://klipped.in/api/\(room)"
Alamofire.request(scriptUrl).responseJSON { response in
if let json = response.result.value {
print("\(json)") // serialized json response
}
}
return "This should return the value of \"content\" in the json response"
}
我现在想以最有效的方式解析json。我搜寻了各种方法,但是我发现的每个解决方案似乎都过于复杂,或者由于类型问题而无法运行。
Swift中是否有一种简单的方法来访问JSON内的值而无需为每个响应创建Struct?我正在考虑以下方面的事情:
get-json-value(json, "content")
这将返回json内的“ content”的字符串值,如果不存在则返回null。
答案 0 :(得分:0)
在使用Alamofire时在Swift 4中解析JSON的最简单方法是使用
getRoomData = JSON as NSDictionary
str = getRoomData["content"] as String
查看示例: AlamoFire GET api request not working as expected
一种更好的方法是使用Swifty JSON库:
let json = JSON(responseData.result.value!)
let roomContent = json["content"].string