我有一個來自數據庫查詢的 json 輸出,如下所示:[ { "name": 1, "value": "27.18161362" }, { "name": 2, "value": "323.69645128" }, { "name": 3, "value": "23.16249181" }]我正在嘗試將其插入一個腳本中,該腳本將根據數據制作圖表。該腳本要求數據采用以下格式:{"script": [ {"name":"1","value":27.18161362}, {"name":"2","value":323.69645128}, {"name":"3","value":23.16249181} ]}如果不是以這種方式格式化,則腳本聲稱它不是有效的 json 并且不包含有價值的 json 頭。輸出確實使用了有效的 json 內容標頭,但這對于我正在使用的腳本來說似乎不夠。所以問題是,如何將第一個示例中顯示的數據庫調用的 json 輸出轉換為腳本正在尋找第二個示例中顯示的格式。創建 json 的代碼相當標準:$stmt = $db3->prepare("SELECT week AS name, SUM(he.earnings) AS value FROM hotspot_earnings he INNER JOIN emrit_hotspots eh ON eh.hotspot_name = he.hotspot_name WHERE year = '2020' GROUP BY year, week");$stmt->execute();$row = $stmt->fetchAll(PDO::FETCH_ASSOC);header('Content-type: application/json; charset=UTF-8');echo json_encode($row, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
2 回答

忽然笑
TA貢獻1806條經驗 獲得超5個贊
$stmt = $db3->prepare("SELECT week AS name, SUM(he.earnings) AS value FROM hotspot_earnings he INNER JOIN emrit_hotspots eh ON eh.hotspot_name = he.hotspot_name WHERE year = '2020' GROUP BY year, week");
$stmt->execute();
// Change here
$row = ['script' => $stmt->fetchAll(PDO::FETCH_ASSOC)];

手掌心
TA貢獻1942條經驗 獲得超3個贊
不確定是否可以使用 php 編輯初始 json 輸出。如果它是由 AJAX 調用并且您可以控制 php 文件,您可以嘗試這樣的操作。只需構建新數組即可。
$new_array = array('script' => $row);
echo json_encode($new_array, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
- 2 回答
- 0 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消