Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php生成json文件时重命名行字段_Php_Json - Fatal编程技术网

使用php生成json文件时重命名行字段

使用php生成json文件时重命名行字段,php,json,Php,Json,我正在使用php和odbc连接生成一个json文件。我的查询很好地转换为json文件 这是我的sql查询: SELECT Date1, Nett FROM database WHERE Date1 BETWEEN '$bdate' AND '$edate' AND String13='$sr' ORDER BY Date1 desc; 这将是json格式: {"Date1":"2015-10-09 00:00:00.000","Nett":"20860.0"} 但我希望输出是 {"date

我正在使用php和odbc连接生成一个json文件。我的查询很好地转换为json文件

这是我的sql查询:

SELECT  Date1, Nett FROM database WHERE Date1 BETWEEN '$bdate' AND '$edate' AND String13='$sr' ORDER BY Date1 desc;
这将是json格式:

{"Date1":"2015-10-09 00:00:00.000","Nett":"20860.0"}
但我希望输出是

{"date":"2015-10-09","value":20860}
所以基本上我希望行“Date1”和“Nett” 自动转换为json文件中的“日期”和“值”。 可选的也只是日期,而不是日期时间

我想重命名此字段,因为我的图表由需要字段日期和值的json文件提供

这就是我到目前为止所拥有的

//json
$json_file_name = "uniwin/json/File_export.json";
$json_file_name = str_replace(" ", "_", $json_file_name);

// Open output file
$fp = fopen($json_file_name, 'w');

// Write JSON list start    
fwrite($fp, '[');

// Write each object as a row
$isFirstRow = true;
while ($row = odbc_fetch_array($json)) {

    if (!$isFirstRow) {
        fwrite($fp, ',');
    } else {
        $isFirstRow = false;
    }

    fwrite($fp, json_encode($row));
}

// Write JSON list end
fwrite($fp, ']');

// Close file and MySQL connection
fclose($fp);

}

您可以更改SQL查询:

SELECT 
  DATE_FORMAT(Date1, '%Y-%m-%d') AS date,
  CAST(Nett AS INT) AS value
FROM database 
WHERE Date1 BETWEEN '$bdate' AND '$edate' AND String13='$sr' 
ORDER BY Date1 desc;
AS date
您可以使用任何别名

“%Y-%m-%d”
并选择任何格式


您可以更改SQL查询:

SELECT 
  DATE_FORMAT(Date1, '%Y-%m-%d') AS date,
  CAST(Nett AS INT) AS value
FROM database 
WHERE Date1 BETWEEN '$bdate' AND '$edate' AND String13='$sr' 
ORDER BY Date1 desc;
AS date
您可以使用任何别名

“%Y-%m-%d”
并选择任何格式


本可以使用
日期(Date1)
,因为不需要更改格式嗨!谢谢你的评论。i get DATE_格式不是可识别的内置函数名。您能提供其他解决方案吗?顺便说一句:当我将查询更改为(选择Date1作为日期…)时,它将重命名为我的json文件Excellent!这样做很好!我想你使用的是MySQL,对于MS SQL你可以看到,谢谢你的建议!可以使用
DATE(Date1)
,因为不需要更改格式!谢谢你的评论。i get DATE_格式不是可识别的内置函数名。您能提供其他解决方案吗?顺便说一句:当我将查询更改为(选择Date1作为日期…)时,它将重命名为我的json文件Excellent!这样做很好!我想你使用的是MySQL,对于MS SQL你可以看到,谢谢你的建议!