我正在研究cordova
。我从php
脚本生成了json
个数据。以下是我的json数据
"11111111": [
{ "x": "2016-01-25 12:58:52", "y": "25.22" },
{ "x": "2016-01-26 13:33:23", "y": "30.14" },
{ "x": "2016-01-27 13:49:18", "y": "35.58" },
{ "x": "2016-01-29 13:55:01", "y": "40.25" },
{ "x": "2016-01-30 14:00:15", "y": "47.25" },
{ "x": "2016-01-31 15:50:15", "y": "14.25" },
{ "x": "2016-02-01 16:16:15", "y": "20.25" },
{ "x": "2016-02-02 17:49:15", "y": "5.25" },
{ "x": "2016-02-03 18:20:15", "y": "77.25" },
{ "x": "2016-02-04 19:30:15", "y": "65.25" }
],
但我想从double quotes
数据中删除y
,
"11111111": [
{ "x": "2016-01-25 12:58:52", "y": 25.22 },
{ "x": "2016-01-26 13:33:23", "y": 30.14 },
{ "x": "2016-01-27 13:49:18", "y": 35.58 },
{ "x": "2016-01-29 13:55:01", "y": 40.25 },
{ "x": "2016-01-30 14:00:15", "y": 47.25 },
{ "x": "2016-01-31 15:50:15", "y": 14.25 },
{ "x": "2016-02-01 16:16:15", "y": 20.25 },
{ "x": "2016-02-02 17:49:15", "y": 5.25 },
{ "x": "2016-02-03 18:20:15", "y": 77.25 },
{ "x": "2016-02-04 19:30:15", "y": 65.25 }
],
更新代码:
下面是我生成json的脚本
if($result)
{
while($row = mysqli_fetch_array($result))
{
$serial = $row['Device_Serial_Number'];
$x = $row['Data_Datetime'];
$y = $row['Energy_kwh'];
if(!isset($data[$serial]))
{
$data[$serial] = [];
}
$data[$serial][] = ['x' => $x , 'y' => $y];
}
mysqli_free_result($result);
}
$json = json_encode($data, JSON_PRETTY_PRINT);
echo "var jsonData = " . $json;
我搜索了很多文章,但找不到任何好的解决方案
任何帮助都将受到高度赞赏
答案 0 :(得分:2)
如果从数据库或$_POST
值获取字符串,则可以将其转换为float:
$data[$serial][] = ['x' => $x , 'y' => (float) $y];
答案 1 :(得分:0)
当你创建json数据时,$ y是float数据类型,当你的php脚本生成数据时,你应该确保float数据类型的精度不被string替换
你可以使用json_encode选项
JSON_PRESERVE_ZERO_FRACTION
每个php版本都有所不同 你应该查看手册
http://php.net/manual/en/json.constants.php
但是如果你的cordova中的setter getter可以处理它,那么当你的应用程序从php脚本获取数据时你可以转换为浮动,即使你的脚本将它作为字符串返回。
抱歉英语不好