2015-12-18 37 views
1

我有PHP代码,它从mysql数据库的表中获取数据并以JSON格式显示该数据。如何更改JSON输出的格式?

这是我的代码:

<?php 

include ("config/config.php"); 
//build query 
$query = 
"SELECT 
ProductID, 
Name, 
Price, 
Type, 
cat 
FROM store ORDER BY ProductID ASC"; 

$rsPackages = mysqli_query($mysqli_conn,$query); 

$arRows = array(); 

while ($row_rsPackages = mysqli_fetch_assoc($rsPackages)) { 
    array_push($arRows, $row_rsPackages); 
} 

header('Content-type: application/json'); 
echo json_encode($arRows); 

?> 

从这个代码的输出是这样的:

[{"ProductID":"1","Name":"HTML:Beginners guide","Price":"7.85","Type":"Book","cat":"HTML"},{"ProductID":"4","Name":"HTML: Intermediate","Price":"8.99","Type":"Book","cat":"HTML"},{"ProductID":"5","Name":"HTML: Advanced","Price":"10.99","Type":"Book","cat":"HTML"},{"ProductID":"7","Name":"CSS: Beginners Guide","Price":"7.99","Type":"Book","cat":"CSS"},{"ProductID":"8","Name":"CSS: Intermediate","Price":"8.99","Type":"Book","cat":"CSS"},{"ProductID":"9","Name":"CSS: Advanced","Price":"10.99","Type":"Book","cat":"CSS"},{"ProductID":"10","Name":"PHP: Beginners Guide","Price":"7.99","Type":"Book","cat":"PHP"},{"ProductID":"11","Name":"PHP: Intermediate","Price":"8.99","Type":"Book","cat":"PHP"},{"ProductID":"12","Name":"PHP: Advanced","Price":"10.99","Type":"Book","cat":"PHP"},{"ProductID":"13","Name":"MYSQL- Easy steps","Price":"11.99","Type":"Book","cat":"MYSQL"},{"ProductID":"14","Name":"HTML- Video Guide","Price":"19.99","Type":"CD","cat":"HTML"},{"ProductID":"15","Name":"CSS: Video Guide","Price":"19.99","Type":"CD","cat":"CSS"},{"ProductID":"16","Name":"PHP: Video Guide","Price":"19.99","Type":"CD","cat":"PHP"},{"ProductID":"22","Name":"css book","Price":"3.49","Type":"","cat":""},{"ProductID":"26","Name":"bdkjhedsjbdsasa","Price":"3.59","Type":"","cat":""}] 

不过,我想输出结果出现在这样的格式:“{”记录 “:[结果]}”

例如:

{"records":[{"ProductID":"1","Name":"HTML:Beginners guide","Price":"7.85","Type":"Book","cat":"HTML"},{"ProductID":"4","Name":"HTML: Intermediate","Price":"8.99","Type":"Book","cat":"HTML"},{"ProductID":"5","Name":"HTML: Advanced","Price":"10.99","Type":"Book","cat":"HTML"},{"ProductID":"7","Name":"CSS: Beginners Guide","Price":"7.99","Type":"Book","cat":"CSS"},{"ProductID":"8","Name":"CSS: Intermediate","Price":"8.99","Type":"Book","cat":"CSS"},{"ProductID":"9","Name":"CSS: Advanced","Price":"10.99","Type":"Book","cat":"CSS"},{"ProductID":"10","Name":"PHP: Beginners Guide","Price":"7.99","Type":"Book","cat":"PHP"},{"ProductID":"11","Name":"PHP: Intermediate","Price":"8.99","Type":"Book","cat":"PHP"},{"ProductID":"12","Name":"PHP: Advanced","Price":"10.99","Type":"Book","cat":"PHP"},{"ProductID":"13","Name":"MYSQL- Easy steps","Price":"11.99","Type":"Book","cat":"MYSQL"},{"ProductID":"14","Name":"HTML- Video Guide","Price":"19.99","Type":"CD","cat":"HTML"},{"ProductID":"15","Name":"CSS: Video Guide","Price":"19.99","Type":"CD","cat":"CSS"},{"ProductID":"16","Name":"PHP: Video Guide","Price":"19.99","Type":"CD","cat":"PHP"},{"ProductID":"22","Name":"css book","Price":"3.49","Type":"","cat":""},{"ProductID":"26","Name":"bdkjhedsjbdsasa","Price":"3.59","Type":"","cat":""}]} 

我应该怎样改变我的php代码以获得上述输出?

回答

2

只是把它包起来:

echo json_encode(array("records" => $arRows)); 
+0

非常感谢您的回答取代你的代码的最后一行。有效。 – user5679217

+0

@ user5679217不客气! ':)' –

1

尝试用:

header('Content-type: application/json'); 
$result['records'] = $arRows; 
echo json_encode($result); 
1

你需要分析哪些返回到一个变量,并把它添加到新的JSON对象像什么,我会立即显示。

var data = JSON.parse('[{"ProductID":"1","Name":"HTML:Beginners guide","Price":"7.85","Type":"Book","cat":"HTML"},{"ProductID":"4","Name":"HTML: Intermediate","Price":"8.99","Type":"Book","cat":"HTML"},{"ProductID":"5","Name":"HTML: Advanced","Price":"10.99","Type":"Book","cat":"HTML"},{"ProductID":"7","Name":"CSS: Beginners Guide","Price":"7.99","Type":"Book","cat":"CSS"},{"ProductID":"8","Name":"CSS: Intermediate","Price":"8.99","Type":"Book","cat":"CSS"},{"ProductID":"9","Name":"CSS: Advanced","Price":"10.99","Type":"Book","cat":"CSS"},{"ProductID":"10","Name":"PHP: Beginners Guide","Price":"7.99","Type":"Book","cat":"PHP"},{"ProductID":"11","Name":"PHP: Intermediate","Price":"8.99","Type":"Book","cat":"PHP"},{"ProductID":"12","Name":"PHP: Advanced","Price":"10.99","Type":"Book","cat":"PHP"},{"ProductID":"13","Name":"MYSQL- Easy steps","Price":"11.99","Type":"Book","cat":"MYSQL"},{"ProductID":"14","Name":"HTML- Video Guide","Price":"19.99","Type":"CD","cat":"HTML"},{"ProductID":"15","Name":"CSS: Video Guide","Price":"19.99","Type":"CD","cat":"CSS"},{"ProductID":"16","Name":"PHP: Video Guide","Price":"19.99","Type":"CD","cat":"PHP"},{"ProductID":"22","Name":"css book","Price":"3.49","Type":"","cat":""},{"ProductID":"26","Name":"bdkjhedsjbdsasa","Price":"3.59","Type":"","cat":""}]'); 
var result = new Object(); 
result.result = data; 
console.log(result); 
0

只是

$data = array("records" => $arRows); 
echo json_encode($data);