如何从mysql数据库创建json文件?

问题描述:

我想创建一个json文件。如何从mysql数据库创建json文件?

$data = $db->query('SELECT * FROM data ORDER BY id ASC;')->fetchAll(PDO::FETCH_ASSOC); 
$json_string = json_encode($data); 
$file = 'data.json'; 
file_put_contents($file, $json_string); 

我的结果:

[{ 
    "id": "123", 
    "timestamp": "2017-05-12 16:22:39", 
    "name": "bear", 
    "description": "dance all day" 
    }, 
    .... 
}] 

但我实际上可以将需要的格式是:

{ 
    "data": [ 
    [ 
     "123", 
     "2017-05-12 16:22:39", 
     "bear", 
     "dance all day" 
    ], 
    .... 
    ] 
} 
+0

您的结果不有一个关闭“]”? – user1506104

+0

更新为你 – Jarla

+0

这取决于你需要什么。你需要一个对象数组吗?或者你需要一个包含数组数据的对象吗?你的结果是对象数组。你实际需要的格式是后者。两种有效的json格式。 http://json.org/ – user1506104

你可以做这样的事情:

$results= $db->query('SELECT * FROM data ORDER BY id ASC;')->fetch_all(); 

$data = array(); 
foreach ($results as $row) { 
    $id = $row[0]; 
    $timestamp = $row[1]; 
    $name = $row[2]; 
    $description = $row[3]; 
    $data[] = array($id, $timestamp, $name, $description); 
} 
$json = json_encode(array("data" => $data)); 
+1

更多代码即将到来 – user1506104

+0

你需要一个json格式的多维数组吗?等一下。 – user1506104

+0

你怎么看JSON_PRETTY_PRINT – Jarla