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

时间:2016-12-08 14:14:43

标签: 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":"2015-10-09","value":20860}

所以基本上我想要那些行" Date1"和" Nett" 自动翻译成" date"和"价值"在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);

}

1 个答案:

答案 0 :(得分:2)

您可以更改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'并选择任何格式

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format