如何从json数据中删除双qoutes

时间:2016-12-06 10:37:18

标签: javascript php json cordova

我正在研究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;

我搜索了很多文章,但找不到任何好的解决方案

任何帮助都将受到高度赞赏

2 个答案:

答案 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脚本获取数据时你可以转换为浮动,即使你的脚本将它作为字符串返回。

抱歉英语不好