我对提供JSON响应的PHP代码几乎没有问题。让我给你举个例子来弄清楚。
假设我们在数据库中有下表:

      | firstname | lastname | age |
      +===========+==========+=====+
      | Nick      | James    | 21  |
      +-----------+----------+-----+
      | John      | Manson   | 23  |
      +-----------+----------+-----+


在我的PHP代码中,列名存储在数组$ col_fields中。列数存储在变量$ num_fields中。数组$ row存储数据库表的每一行,因此row [0]是名字,row [1]是姓氏,row [2]是年龄。另外,我使用辅助数组$ row_aux来存储对:“ key” =>“ value”。因此,在我们的示例中,对将如下所示:

第1行:“名字” =>“尼克”,“姓氏” =>“詹姆斯”,“年龄” =>“ 21”

第2行:“名字” =>“约翰”,“姓氏” =>“曼森”,“年龄” =>“ 23”

这里描述了我正在等待的JSON响应:

{“ table_name”:[{“ firstname”:“ Nick”,“ lastname”:“ James”,“ age”:21},{“ firstname”:“ John”,“ lastname”:“ Manson”,“ age” :23}]}

但是我真正得到的是这里描述的:

{“ table_name”:[{“ firstname”:[“ Nick”],“ lastname”:[“ James”],“ age”:[“ 21”]},{“ firstname”:[“ John”],“ lastname“:[” Manson“],” age“:[” 23“]}]}

我使用的代码是:

while ($i < $num_fields) {
  $row_aux[$col_fields[$i]][] = $row[$i];
  $i++;
}
echo json_encode($row_aux);


谁能告诉我如何解决?

最佳答案

您是否尝试从代码中删除最后一组括号?似乎就是在创建要推送单个值的数组:

while ($i < $num_fields) {
  $row_aux[$col_fields[$i]] = $row[$i];
  $i++;
}
echo json_encode($row_aux);

关于php - JSON响应中不需要的方括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32894943/

10-16 04:59
查看更多