2016-09-01 3 views
-1

Я хотел бы получить значения для 'datelog_collected' и 'значение' поля:Decode JSON строку PHP

{ "данных": [{ "datelog_collected": «2016-09-01 13:57:13" , "значение": "36,06" } ] }

до сих пор я пытался с json_decode, но без успеха. Я хочу, чтобы это оставалось как объект. Благодаря

+0

Что именно вы пробовали? 'json_decode' не должен иметь никаких проблем с этим. – iainn

+0

Что означает _ «без успеха» _ означает? –

+0

Это означает, что я не могу получить доступ к значениям, когда я пытаюсь что-то вроде объекта $ object-> ... – Dim17300

ответ

0

Если вы используете json_decode как:

$res=json_decode('{ "data": [ { "datelog_collected": "2016-09-01 13:57:13", "value": "36.06" } ] }'); 

$ Рез будет объектом, так что вы можете получить доступ к: $res->data

А если добавить второй параметр true (JSON как массив)

$res=json_decode('{ "data": [ { "datelog_collected": "2016-09-01 13:57:13", "value": "36.06" } ] }', true); 

$ res будет массивом, чтобы вы могли получить доступ: $res["data"]

+0

Я согласен с вашим решением, но как я могу получить значение «значение», например? $ Res-> данных-> значение? – Dim17300

+0

'$ res - это объект, но' $ res-> data' - массив с объектом внутри него. Следовательно, вам нужно будет использовать '$ res-> data [0] -> datelog_collected', чтобы получить хранилище значений в' datelog_collected' – roberto06

+0

Спасибо, много чувак! – Dim17300

-3

Попробуйте эту проверку

<?php 
$datelog_collected=array(); 
$datelog_value=array(); 
$data='{ "data": [ { "datelog_collected": "2016-09-01 13:57:13", "value": "36.06" } ] }'; 
$data_array=json_decode($data,true);//true create array if you want object then remove true 
if(is_array($data_array)&&!empty($data_array)) 
{ 
    foreach ($data_array as $key => $value) { 
    if(is_array($value)) 
    {  
     foreach ($value as $key1 => $value1) { 
      foreach ($value1 as $key2 => $value2) { 
      if($key2=="datelog_collected") 
      { 
       $datelog_collected[]=$value2; 
      }else{ 
       $datelog_value[]=$value2; 
      } 
      } 
     } 
    } 
    } 

    //here is datelog_collected 
    var_dump($datelog_collected); 
    echo "<br/>-----------------------<br/>"; 
     //here is datelog_value 
    var_dump($datelog_value); 

} 

?> 

работает Ссылку http://main.xfiddle.com/7ffb488b/json_decoder.php

+2

Просто публикация куча слишком сложного кода без каких-либо объяснений не помогает никому. –

1

Если вы используете

$object = json_decode($your_JSON_string); 

datelog_collected и value будет не быть свойства в результате $object ,

Объект будет иметь только одно имущество, data. data - это числовой индексный массив (то есть квадратные скобки в значении JSON), который содержит один объект. Свойства, которые вы хотите, принадлежат , что объект.

Таким образом, вы можете получить то, что вы хотите с $object->data[0]->datelog_collected и т.д.