我有一个来自数据库查询的 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 关注
- 85 浏览
添加回答
举报
0/150
提交
取消