解码json字符串PHP

时间:2016-09-01 15:04:38

标签: php json

我想获得' datelog_collected'的值。和'价值'字段:

  

{     "数据":[       {         " datelog_collected":" 2016-09-01 13:57:13",         "价值":" 36.06"       }     ]   }

到目前为止,我尝试使用json_decode但没有成功。我希望这个作为一个对象。感谢

3 个答案:

答案 0 :(得分:1)

如果您使用

$object = json_decode($your_JSON_string);

datelog_collectedvalue作为结果$object的属性。

该对象只有一个属性datadata是一个数字索引数组(即JSON中的方括号),它包含一个对象。您想要的属性属于那个对象。

所以你可以通过$object->data[0]->datelog_collected等获得你想要的东西。

答案 1 :(得分:0)

如果您使用json_decode:

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

$ res将成为一个对象,因此您可以访问:$res->data

如果你添加第二个参数true(json as array)

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

$ res将是一个数组,因此您可以访问:$res["data"]

答案 2 :(得分:-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