«Не ссылка на массив» при зацикливании файла json - Perl - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь прочитать файл json через цикл foor, но получаю сообщение об ошибке «Не ссылка на массив», это код, который я использую;

$json_text = JSON::XS->new->utf8->encode ($return); 
my $decoded_file = decode_json $json_text;

for my $items (@{$decoded_file}) {

} 

$ decoded_file:

$VAR1 = [
      {
        'data' => {
                   'id' => 0,   
                   'type' => 'car',
                   'details' => [
                                 {
                                   'year' => '2001',
                                   'color' => 'red', 
                                 }
                               ],
                   'status' => 'Y'
                 },

1 Ответ

0 голосов
/ 26 марта 2019

То, что вы утверждаете, не соответствует действительности.

use strict;
use warnings;

my $decoded_file = [
      {
        'data' => {
                    'status' => 'Y',
                    'id' => 0,
                    'type' => 'car',
                    'details' => [
                                   {
                                     'year' => '2001',
                                     'color' => 'red'
                                   }
                                 ]
                  }
      }                      # Added this.
    ];                       # Added this.

for my $items (@{$decoded_file}) {

}

print "ok\n";

производит

ok

В том, что вы нам показали, $decoded_file содержит ссылку на массив, поэтому ваш циклдействительно, что вы должны использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...