2016-12-06 2 views
2

Я работаю над cordova. Из сценария php я создал данные json. Ниже мои данные JSONКак удалить двойные qoutes из 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

Вы должны посмотреть, где создается '$ y'. В настоящее время это строка в PHP, поэтому наилучшим подходом было бы изменить это во время создания. В настоящее время вы не используете код, связанный с созданием '$ x' и' $ y'. – Sirko

+3

Быстрое исправление было бы заставить его плавать, если вы получите строку из базы данных: '' y '=> (float) $ y' – jeroen

+0

@Sirko см. Обновление – faisal1208

ответ

2

Если вы получаете строку обратно из базы данных или значение $_POST, вы можете бросить его плавать:

$data[$serial][] = ['x' => $x , 'y' => (float) $y]; 
+1

Работа совершенна :) – faisal1208

0

когда вы создали данные JSon, $ у есть тип данных с плавающей точкой, и когда ваш PHP скрипт сгенерировал данные вы должны убедиться, что точность данных типа поплавка не заменяется строкой

вы можете использовать op Тион для json_encode

JSON_PRESERVE_ZERO_FRACTION 

его различного для каждой версии PHP вы должны проверить руководство

http://php.net/manual/en/json.constants.php

, но это не имеет значения, если сеттер добытчик в вашей Кордове может справиться с этим, вы можете бросить в плавать, когда ваше приложение получает данные из вашего php-скрипта, даже если ваш скрипт возвращает его как строку.

Извините за плохой английский

Смежные вопросы