我遇到一个问题,我的userLogin.php脚本包含2x JSON_encode行。
echo json_encode($userDetails);
echo json_encode($communities);
这是下面的完整userLogin.php脚本:
<?php
require ("Conn.php");
require ("MySQLDao.php");
$email = htmlentities($_POST["email"]);
$password = htmlentities($_POST["password"]);
$returnValue = array();
if(empty($email) || empty($password))
{
$returnValue["status"] = "error";
$returnValue["message"] = "Missing required field";
echo json_encode($returnValue);
return;
}
$secure_password = md5($password);
$dao = new MySQLDao();
$dao->openConnection();
$userDetails = $dao->getUserDetailsWithPassword($email,$secure_password);
if(!empty($userDetails))
{
$returnValue["status"] = "Success";
$returnValue["message"] = "User is registered";
echo json_encode($userDetails);
}else{
$returnValue["status"] = "error";
$returnValue["message"] = "User is not found";
echo json_encode($returnValue);
}
//once logged in run function to get list of communities
$communities = array();
$communities = $dao->getCommunities($email);
echo json_encode($communities);
$dao -> closeConnection();
?>
$userDetails
存储刚刚登录的人员的详细信息,例如ID,姓名,电子邮件地址。
$communities
是一个数组,用于存储一个人所属的不同社区的名称。每个成员可能是不同数量社区的一部分。
一旦用户登录,我就需要这两个数组,因此将它们都放在我的userLogin.php脚本中。这些都返回给Swift,在$communities
的情况下,我将在UITableView中显示内容。
但是,我已经知道你不能输出多个JSON块,因为这是一个语法错误。 (已在我的Xcode中报告错误)
我如何克服这个问题?
答案 0 :(得分:2)
将它们放在一个数组中:
echo json_encode(array($userDetails, $communities));
或者使用一些有意义的键:
echo json_encode(array('userDetails' => $userDetails,
'communities' => $communities));