gpt4 book ai didi

json - Alamofire 奇怪的 JSON 前缀 - Swift 2.0

转载 作者:可可西里 更新时间:2023-11-01 02:19:33 24 4
gpt4 key购买 nike

我试图从 API 获取 JSON 文件,但 Alamofire(分支:Swift 2.0)返回带有奇怪前缀 (Alamofire.Result.Success) 的文件。如果这是一个愚蠢的问题,我很抱歉,但我是 alamofire 的新手。我怎样才能得到一个可以与 SwiftyJSON 一起使用的 NORMAL 文件。

我的代码:

func getText (image: UIImage){

let url = "https://api.idolondemand.com/1/api/sync/ocrdocument/v1"
let apiKey = "xxx-xxx-xxx-xxx-xxx"
let mode = "document_photo"
let imageData = UIImagePNGRepresentation(image)

Alamofire.upload(
.POST,
url,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(
data: apiKey.dataUsingEncoding(NSUTF8StringEncoding)!,
name: "apikey"
)
multipartFormData.appendBodyPart(
data: mode.dataUsingEncoding(NSUTF8StringEncoding)!,
name: "mode"
)
multipartFormData.appendBodyPart(data: imageData!, name: "file",fileName: "image.png", mimeType: "image/png")
},
encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { _, _, json in

print(JSON)

}
case .Failure(let encodingError):
print(encodingError)
}
}
)
}

打印输出(JSON):

Alamofire.Result<Swift.AnyObject>.Success([text_block: (
{
height = 127;
left = 0;
text = "\U2022 response()\n\U2022 responseString(encoding: NSStringEncoding)\n\U2022 responseJSON(options: NSJS0NReading0ptions)\n\U2022 responsePropertyList(options: NSPropertyListRead0ptions)";
top = 0;
width = 487;
}
)])

最佳答案

在调用 upload.responseJSON(_:completionHandler:) 的闭包参数中,您指定名称 json 的参数作为 Alamofire 传递Result 枚举(参见 source )。

您应该能够通过访问其 value 属性来获取该枚举的关联数据,如下所示:

upload.responseJSON  { _, _, json in
print(json.value!)
}

此外,查看 SwiftyJSON当你有机会时(一个在 Swift 中处理 JSON 的流行库)。

关于json - Alamofire 奇怪的 JSON 前缀 - Swift 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com