为了账号安全,请及时绑定邮箱和手机立即绑定

更改php中的json格式

更改php中的json格式

PHP
海绵宝宝撒 2023-09-15 18:35:37
我有一个来自数据库查询的 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)];


查看完整回答
反对 回复 2023-09-15
?
手掌心

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);


查看完整回答
反对 回复 2023-09-15
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信