在这个服务中,我得到了输出,但我想要不同的输出。让我解释一下:
$customer_id = $_POST['customer_id'];
$response = array();
$qry="SELECT category FROM nesbaty_customer where c_id='".$customer_id."' ";
$qry_res=mysqli_query($con,$qry);
$jsonData = array();
while ($array = mysqli_fetch_assoc($qry_res))
{
$r= $array['category'];
$jsonData[]=explode(",",$r);
}
echo json_encode(array('data' =>$jsonData));
mysqli_close($con);
我得到如下输出:
{
"data": {
"category": [
"Hotel",
"Saloon"
]
}
}
但我想要这样的输出!
{"data":[{"category":"Hotel"},{"category":"Saloon"}]}
5条答案
按热度按时间yvfmudvl1#
将每个类别添加为单独的json对象,然后:
这样你就得到了一个对象数组,所以你应该很好。
s5a0g9ez2#
键应该是唯一的,不应该重复“category”作为键。
“名称都是唯一的对象是可互操作的,因为接收该对象的所有软件实现都将同意名称-值Map。当对象中的名称不唯一时,接收此类对象的软件的行为是不可预测的。”
看到了吗https://tools.ietf.org/html/rfc7159 用于json定义。
如您所见,json_encode使用了这个rfc:“php实现了一个json的超集,正如在原始代码中指定的那样» rfc 7159。”
如果你真的想写非唯一的键,你应该写你的自定义json编码函数,但是解码函数会有不可预知的行为。
a5g8bdjr3#
你不能得到你想要的,因为你会有一个数组有两个相同的键。你可以通过改变得到类似的东西:
到
Array
(
[data] => Array
(
[0] => Array
(
[category] => Hotel
)
[1] => Array
(
[category] => Saloon
)
)
)
{"data":[{"category":"Hotel"},{"category":"Saloon"}]}
6yt4nkrj4#
数组的键必须是唯一的
db2dz4w85#
while($array=mysqli\u fetch\u assoc($qry\u res)){