我正在尝试使用Web API来获取一些数据。问题是我需要将CSV数据转换为JSON格式。
<?php
// allows us to skip the first row while looping through the file
$i = 0;
//web api
$stocks = "https://www.google.com/finance/historical?output=csv&q=aapl";
//read csv file
$handle = fopen($stocks, 'r');
//loop through CSV file
while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {
if ($i > 0) {
trim($data[0]);
trim($data[1]);
trim($data[2]);
trim($data[3]);
trim($data[4]);
trim($data[5]);
// an array
$chartArray[] = $data;
}
$i++;
}
fclose($handle);
//Convert PHP Array to JSON String
print (json_encode($chartArray));
?>
从图像中可以看出,我正在使用机箱获取JSON。 ["19-May-17","153.38","153.98","152.63","153.06","26960788"]
。
如果有解决方案,请告诉我。提前谢谢!
答案 0 :(得分:0)
您永远不会将非字符串值放入json中。从不。
否则。您只需将数字部分转换为数字,将日期部分转换为php日期。
这样的事情:
while (($data = fgetcsv($handle, 2000, ",")) !== FALSE) {
if ($i > 0) {
$data[0] = date('Y-m-d', strtotime($data[0]));
$data[1] = intval($data[1]);
$data[2] = intval($data[2]);
$data[3] = intval($data[3]);
$data[4] = intval($data[4]);
$data[5] = intval($data[5]);
$chartArray[] = $data;
}
$i++;
}
但是一旦你将它转换为json,它就会自动放置“chars。所以你需要在接收者(客户端?)那边转换字符串。”
答案 1 :(得分:0)
你误解了JSON是什么。这是您的数据在JSON格式时的样子:它必须是一系列在javascript语法的JSON
子集中合法的值(字符串,int
,数组等)。没有问题需要解决。使用JSON的函数将知道该怎么做。