我想像下面的json格式那样存储JSON数据store.json文件。
store.json
{ "data" :
[
{
"id": 1,
"customerid": "balaji",
"name": "Balaji",
"email": "karurbalamathi@gmail.com",
"phone": "9566711194"
}
]
}
但是数据是这样存储的
[
{
"id": 1,
"customerid": "balaji",
"name": "Balaji",
"email": "karurbalamathi@gmail.com",
"phone": "9566711894"
}
]
php.php
<?php
$json = $conn->prepare("SELECT * from users");
$json->execute();
$json = $json->get_result();
$response = array();
$posts = array();
while ($row = $json->fetch_assoc()) {
$rows[] = $row;
}
$rows1[] = '{ "data" : '.$rows.'}';
print_r($rows1);
$rows = json_encode($rows1);
if(file_exists('data.json')){
unlink('data.json');
}
$myFile = "data.json";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $rows);
fclose($fh);
?>
所以我无法选择要显示的数据。 请帮我解决。
答案 0 :(得分:2)
您已在data
这一行中添加了$rows1[] = '{ "data" : '.$rows.'}';
密钥。
替换
$rows1[] = '{ "data" : '.$rows.'}';
print_r($rows1);
$rows = json_encode($rows1);
if(file_exists('data.json')){
unlink('data.json');
}
$myFile = "data.json";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $rows);
fclose($fh);
下面有
$json_data = [];
$json_data['data'] = $rows;
$myFile = "data.json";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, json_encode($json_data));
fclose($fh);
您必须将其作为key
分配给数组以获取所需的格式,而不进行任何字符串操作。
此外,file_exists()
和unlink()
是多余的,因为您以w
模式打开文件。
答案 1 :(得分:1)
将数据存储方式更改为...
$rows1['data'] = $rows;
使用时...
$rows1[] = '{ "data" : '.$rows.'}';
$rows
是一个数组,因此将不起作用(数组到字符串的转换)。