2016-09-01 3 views
-1

Ich möchte die Werte für 'datelog_collected' und 'Wert' Felder erhalten:Decode JSON-String PHP

{ "data": [{ "datelog_collected": „2016.09.01 13.57.13" , "Wert": "36.06" } ] }

Bisher habe ich versucht, mit json_decode aber ohne Erfolg. Ich möchte, dass dies ein Objekt bleibt. Dank

+0

Was genau haben Sie versucht? 'json_decode' sollte damit kein Problem haben. – iainn

+0

Was bedeutet "ohne Erfolg"? –

+0

Es bedeutet, dass ich nicht auf die Werte zugreifen kann, wenn ich etwas wie $ object-> property ... – Dim17300

Antwort

0

Wenn Sie json_decode als:

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

$ res ein Objekt sein würde, so dass Sie zugreifen können: $res->data

Und wenn Sie zweiten Parameter true (json als Array) in

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

$ res wäre ein Array, so dass Sie zugreifen können: $res["data"]

+0

Ich stimme mit Ihrer Lösung, aber wie bekomme ich den Wert von "Wert" zum Beispiel? $ res-> Daten-> Wert? – Dim17300

+0

'$ res' ist ein Objekt, aber' $ res-> data' ist ein Array mit einem Objekt darin. Daher müssen Sie '$ res-> data [0] -> datelog_collected' verwenden, um den Wertspeicher in' datelog_collected' zu erhalten. – roberto06

+0

Vielen Dank, Alter! – Dim17300

-3

Versuchen Sie, diese

<?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); 

} 

?> 

Check Link http://main.xfiddle.com/7ffb488b/json_decoder.php

+2

Einfach einen Haufen übermäßig komplizierten Code ohne irgendeine Erklärung zu veröffentlichen, hilft keinem wirklich .. –

1

Wenn Sie

$object = json_decode($your_JSON_string); 

datelog_collected und value wird nicht sein Eigenschaften des resultierenden $object verwenden Arbeits .

Das Objekt hat nur eine Eigenschaft, data. data ist ein numerisch indiziertes Array (das sind die eckigen Klammern in JSON), das ein Objekt enthält. Die gewünschten Eigenschaften gehören zu dass Objekt.

Sie können also bekommen, was Sie mit $object->data[0]->datelog_collected wollen usw.