是否可以将两个JSON对象从PHP发送到Swift?
我想从PHP到我的应用程序中获得一个多个jsonObject。问题是我似乎无法将多个对象添加到我的应用程序中。下面是我想做的一个例子: PHP文件:是否可以将两个JSON对象从PHP发送到Swift?,php,json,swift,Php,Json,Swift,我想从PHP到我的应用程序中获得一个多个jsonObject。问题是我似乎无法将多个对象添加到我的应用程序中。下面是我想做的一个例子: PHP文件: <?php echo json_encode([$value1, $value2]); ?> 显然,我没有得到这两个变量。我试图将$value1和$value2放入一个数组中,然后将其回显到应用程序中,但显然它对我不起作用数据![0]和数据![1] 给出错误信息。谁能帮我一把吗?我从您的Swift代码推断,$value1和
<?php
echo json_encode([$value1, $value2]);
?>
显然,我没有得到这两个变量。我试图将
$value1
和$value2
放入一个数组中,然后将其回显到应用程序中,但显然它对我不起作用<代码>数据![0]和数据![1]
给出错误信息。谁能帮我一把吗?我从您的Swift代码推断,$value1
和$value2
是两种不同类型的结果。对于异构对象的集合,我建议使用关联数组(即字典):
及
现在,考虑到你没有分享细节,我假设:
是一个结构正确的$value1
李>对话数组
;及对话本身就是可解码的
是一个结构正确的$value2
字符串数组
我还建议避免使用
数据代码>,因为如果出现服务器错误,应用程序将崩溃。我建议您优雅地检测错误,例如:
let task = URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data, error == nil else {
print(error ?? "Unknown error")
return
}
do {
let serverResult = try JSONDecoder().decode(ServerResult.self, from: data)
// do something
} catch let parseError {
print(parseError)
}
}
task.resume()
将其作为数组发送,例如,echo json_encode([$value1,$value2])代码>。您目前拥有的内容创建了一个无效的JSON字符串。“我试图将$value1和$value2放入一个数组中……但是……它不起作用”。。。让我们看看你试过什么。这是正确的基本想法。如果value1
和value2
是同一个结构,那么构建一个普通数组并json\u encode
。如果它们有不同的结构,那么你可能想要构建一个关联数组(即字典)和json\u encode
。事实上,我试着按照Jon在上面所展示的那样做(但我没有把[]
),不知何故,我认为问题来自快速方面,我只是不知道如何解码对象。。我会告诉你我做了什么,我会编辑问题@Rob这正是我想要的,你的假设是100%正确的!。。。谢谢你的帮助,谢谢
<?php
echo json_encode(Array("result" => $value1, "chck" => $value2));
?>
struct ServerResult: Decodable {
let result: [Conversation]
let chck: [String]
}
let serverResult = try JSONDecoder().decode(ServerResult.self, from: data!)
let task = URLSession.shared.dataTask(with: request) { data, _, error in
guard let data = data, error == nil else {
print(error ?? "Unknown error")
return
}
do {
let serverResult = try JSONDecoder().decode(ServerResult.self, from: data)
// do something
} catch let parseError {
print(parseError)
}
}
task.resume()