如何在 Json Object "timestamp": value 中转换 sql 查询结果
Posted
技术标签:
【中文标题】如何在 Json Object "timestamp": value 中转换 sql 查询结果【英文标题】:How to convert sql query result in Json Object "timestamp": value如何在 Json Object "timestamp": value 中转换 sql 查询结果 【发布时间】:2017-12-15 09:43:50 【问题描述】:我想使用 Cal-Heatmap 来可视化数据,我当前的 sql 结果返回为
[ "dateStampSecs": "1499637600", "value": "1" ]
但我想要
[ "1499637600" : 1 ]
如何将它们粘在一起?
我正在使用 Codeigniter,下面是我的 sql:
public function get_calData()
$this->db->select('unix_timestamp(STR_TO_DATE(date_start, "%Y-%m-%d")) dateStampSecs,count(*) as value');
$this->db->from('calendar');
$query = $this->db->get()->result();
print json_encode($query,JSON_PRETTY_PRINT);
【问题讨论】:
【参考方案1】:希望能成功
$query = json_decode($query ,true);
$query = [$query['dateStampSecs']=>$query['value']];
dd(json_encode($query));`
【讨论】:
【参考方案2】:$dateStampSecs = array_column($query, "dateStampSecs");
$value = array_column($query, "value");
$result = array_combine($dateStampSecs, $value);
print json_encode($result,JSON_PRETTY_PRINT);
【讨论】:
谢谢,这是我要找的那个。【参考方案3】:这样试试
$finalData='';
foreach ($query as $data)
$finalData[][$data['dateStampSecs']]=$data['value'];
$finalData=json_encode($finalData);
dd($query,$finalData);
它将输出为
【讨论】:
SQL 已经返回一个数组,因此解码不起作用。【参考方案4】:你必须像下面这样回显结果
echo json_encode($query);
退出();
【讨论】:
以上是关于如何在 Json Object "timestamp": value 中转换 sql 查询结果的主要内容,如果未能解决你的问题,请参考以下文章
Android开发 解析JSON数据格式 如何去掉JSON数
("[object Promise]") 不能序列化为 JSON