gpt4 book ai didi

php - Swift - 使用 Alamofire 从 PHP 数据解析 JSON

转载 作者:行者123 更新时间:2023-11-28 09:24:19 24 4
gpt4 key购买 nike

我正在尝试使用 PHP 为中国用户创建一个适配器以连接 GoogleAPI。在 json 响应中,我试图获取描述数据。但是,我什至无法获取字典数据。有什么建议吗?

iOS 代码

Alamofire.request(requestString, method: .post, parameters: data, encoding: URLEncoding.httpBody, headers: [:]).responseJSON { (response) in
switch response.result {
case .success(_):
print(response.result.value)
if let dictionary = response.result.value as? Dictionary<String,Any>{
print("dictionary", dictionary)
}
}
}

PHP

<?php
$post_data = $_POST['data'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://vision.googleapis.com/v1/images:annotate?key=KKEEYY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Content-length: ".strlen($post_data)));
$result = curl_exec($ch);
echo json_encode($result);
?>

编辑

如果我使用自己的适配器,我可以看到键和值有额外的“”

如果直接向 Google 请求,则响应 print("direct", response.result.value)

enter image description here

如果使用我的适配器print("using adapter", response.result.value)

enter image description here

最佳答案

您的结果已经是字典,无需使用 NSDictionary 进行转换。此外,您必须使用 swift 类,避免在 Swift 中使用 Objective-c 类:

试试这个:

switch response.result {
case .success:
if let jsonDict = response.result.value as? Dictionary<String,Any> {
print("Json Response: \(jsonDict)") // serialized json response
if let responses = jsonDict["responses"] as? [[String:Any]] {
print("3", responses)
}
}
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {
print("Server Response: \(utf8Text)") // original server data as UTF8 string
}
break
case .failure(let error):
print(error)
break
}
}

关于php - Swift - 使用 Alamofire 从 PHP 数据解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47172930/

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