How to decode a JSON String

后端 未结 3 855
醉话见心
醉话见心 2020-11-28 15:01

everybody! Could I ask you to help me to decode this JSON code:

$json = \'{\"inbox\":[{\"from\":\"55512351\",\"date\":\"29\\/03\\/2010\",\"time\":\"21:24:10\         


        
相关标签:
3条回答
  • 2020-11-28 15:23
    enter code here
    <?php
    $subject = file_get_contents('http://example.com/subject.php');
    $subject_arr = json_decode($subject);
    
    $my = $subject_arr->info;
    
    for($i=0;$i<=1000;$i++){
    echo $my[$i]->subject_name;
    echo "<br>";
    }
    echo $my[0]->subject_name;
    
    ?>
    <?php
    $subject = file_get_contents('http://example.com/subject.php');
    $subject_arr = json_decode($subject);
    
    $my = $subject_arr->info;
    
    for($i=0;$i<=1000;$i++){
    echo $my[$i]->subject_name;
    echo "<br>";
    }
    ?>
    
    0 讨论(0)
  • 2020-11-28 15:27

    Looks like the recipients property is an array, try this:

    $json = '{"inbox":[{"from":"55512351","date":"29\/03\/2010","time":"21:24:10","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:12","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:13","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:13","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."}]}';
    $data = json_decode($json);
    print_r($data);
    
        foreach ($data->inbox as $note)
        {
          echo '<p>';
          echo 'From : ' . htmlspecialchars($note->from) . '<br />';
          echo 'Date : ' . htmlspecialchars($note->date) . '<br />';
          echo 'Time : ' . htmlspecialchars($note->time) . '<br />';
          echo 'Body : ' . htmlspecialchars($note->body) . '<br />';
    
            foreach($note->recipients as $recipient)
            {
                echo 'To (address) : ' . htmlspecialchars($recipient->address) . '<br />';
                echo 'To (name)    : ' . htmlspecialchars($recipient->name) . '<br />';
                echo 'Status       : ' . htmlspecialchars($recipient->deliveryStatus) . '<br />';
            }
        }
    
    0 讨论(0)
  • 2020-11-28 15:40

    You can use the json_decode function, to decode your JSON string :

    $json = '{"inbox":[{"from":"55512351","date":"29\/03\/2010","time":"21:24:10","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:12","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:13","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."},{"from":"55512351","date":"29\/03\/2010","time":"21:24:13","utcOffsetSeconds":3600,"recipients":[{"address":"55512351","name":"55512351","deliveryStatus":"notRequested"}],"body":"This is message text."}]}';
    $data = json_decode($json);
    var_dump($data);
    


    And you'll get something like this :

    object(stdClass)[1]
      public 'inbox' => 
        array
          0 => 
            object(stdClass)[2]
              public 'from' => string '55512351' (length=8)
              public 'date' => string '29/03/2010' (length=10)
              public 'time' => string '21:24:10' (length=8)
              public 'utcOffsetSeconds' => int 3600
              public 'recipients' => 
                array
                  0 => 
                    object(stdClass)[3]
                      public 'address' => string '55512351' (length=8)
                      public 'name' => string '55512351' (length=8)
                      public 'deliveryStatus' => string 'notRequested' (length=12)
              public 'body' => string 'This is message text.' (length=21)
          1 => 
            object(stdClass)[4]
              public 'from' => string '55512351' (length=8)
              public 'date' => string '29/03/2010' (length=10)
              public 'time' => string '21:24:12' (length=8)
              public 'utcOffsetSeconds' => int 3600
              public 'recipients' => 
                array
                  0 => 
                    object(stdClass)[5]
                      public 'address' => string '55512351' (length=8)
                      public 'name' => string '55512351' (length=8)
                      public 'deliveryStatus' => string 'notRequested' (length=12)
              public 'body' => string 'This is message text.' (length=21)
          ....
          ....
    


    Now that you know the structure of the data, you can iterate over it ; for instance, you could use something like this :

    foreach ($data->inbox as $note) {
      echo '<p>';
      echo 'From : ' . htmlspecialchars($note->from) . '<br />';
      echo 'Date : ' . htmlspecialchars($note->date) . '<br />';
      echo 'Body : ' . htmlspecialchars($note->body) . '<br />';
      echo '</p>';
    }
    


    And you'll get this kind of output :

    From : 55512351
    Date : 29/03/2010
    Body : This is message text.
    
    From : 55512351
    Date : 29/03/2010
    Body : This is message text.
    
    ...
    ...
    
    0 讨论(0)
提交回复
热议问题