簡體   English   中英

如何從PHP中的嵌套json獲取值

[英]How to get a value from nested json in php

我是JSON的初學者,我正嘗試從json字符串獲取值。 例如,我想讀取第一個“ t”:1443502800並將其分配給變量$ beginTime ,將第二個“ t”:1443790800分配給變量$ endTime

{
  "op":"&",
  "c":[
       {
         "type":"date",
         "d":">=",
         "t":1443502800
       },
       {
         "type":"date",
         "d":"<",
         "t":1443790800
       }
     ],
  "showc":[true,true]
}

我真的很感謝您的幫助:)

編輯代碼

foreach($rs2 as $record2)
    { 
      if( $record2->availability == '{"op":"&","c":[],"showc":[]}'){
        //skip, because the restriction date was not set for this attendance
      }
      else{
        //get the restriction date by making use of json                  
         $json_data = json_decode($record2->availability, true);
         echo $json_data['c'];
      }
    } 

問題是您無法回顯數組。 您正在嘗試回顯$json_data['c'] (它是一個數組)。 退還它或回顯您的需求。 例如,要回顯開始時間,請使用echo $json_data['c'][0]['t']

原始答案

您應該在第二個變量中使用不帶true的json_decode。 然后,您有對象(以大括號{開頭)和數組(以方括號[開頭[ )。 然后,您可以獲取開始時間和結束時間

<?php
$string = '{
  "op":"&",
  "c":[
       {
         "type":"date",
         "d":">=",
         "t":1443502800
       },
       {
         "type":"date",
         "d":"<",
         "t":1443790800
       }
     ],
  "showc":[true,true]
}';
$json = json_decode($string);
echo "Start time: ".$json->c[0]->t;
echo "End time: ".$json->c[1]->t;

下面是它的工作的eval.in - https://eval.in/441599

你快到了 完整的通話應該是

$beginTime = $json_data['c'][0]['t'];

因為$json_data['c'][0]是數組:

array (
    "type" => "date",
    "d" => ">=",
    "t" => 1443502800
),

$endtime可以通過類似的方式獲得:

$endTime = $json_data['c'][1]['t'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM