需要从PHP生成json对象数组

时间:2015-03-27 17:08:50

标签: php arrays json object

我有一个经过测试和运行的代码块,它读取json文件并将信息放入表中,当json文件的格式如下:

[
  {
    "title": "Title One",
    "hits": 99,
    "type": "Type 1",
    "id": "001"
  },
  {
    "title": "Title Two",
    "hits": 109,
    "type": "Type 2",
    "id": "002"
  },
  {
    "title": "Title Three",
    "hits": 119,
    "type": "Type 3",
    "id": "003"
  }
]

这是一个PHP对象数组。问题是我无法从我的PHP动态生成这个json - 上面没有生成它只是前端的测试文件。我得到的最好的是生成一个数组,我的表不能读取。我的PHP的结尾和相关部分如下:

do {
    $model[] = array(
                    'plays' => $row_GetTotalItems['Rows'],
                    'title' => $row_GetTotalItems['video_title'],
                    'id' => $row_GetTotalItems['videoID']
    );
 } while ($row_GetTotalItems = mysql_fetch_assoc($GetTotalItems));
}
} 

header("Content-type: application/json");
json_encode($model); 
print_r($model);
?>

有关如何正确生成json文件以便将其格式化为我的表的任何想法都在寻找它吗?

1 个答案:

答案 0 :(得分:0)

离开mysql_*并转到MySQLi或PDO,但是对于这个问题,请获取对象。您还需要将JSON编码的字符串分配给某个或仅echo。其次,即使第一次或最后一次没有获取行,也不要使用do

while ($row_GetTotalItems = mysql_fetch_object($GetTotalItems)) {
    $model[] = $row_GetTotalItems;
}
header("Content-type: application/json");
echo json_encode($model); 

为了将来参考,您可以创建一个数组并转换为对象:

$model[] = (object)array('plays' => $row_GetTotalItems['Rows'],
                         'title' => $row_GetTotalItems['video_title'],
                         'id' => $row_GetTotalItems['videoID']
);