URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10088
[ Назад ]

Исходное сообщение
"Perl и парсинг JSON + Dumper"

Отправлено Andrey , 27-Мрт-16 12:01 
Всем привет,
Имею сложность с парсингом данных представленных в JSON.
#!/usr/bin/perl
use diagnostics;
use JSON::XS;
use Data::Dumper;

my $json_data='{
  "href" : "http://localhost/profiles",
  "items" : [
    {
      "href" : "http://localhost/id111",
      "Child" : {
        "name" : "Jack",
        "age" : "11",
        "pet" : "Cat"
      }
    },
    {
      "href" : "http://localhost/id303",
      "Child" : {
        "name" : "David",
        "age" : "8",
        "pet" : "Dog"
      }
      },
      {
      "href" : "http://localhost/id516",
      "Child" : {
        "name" : "Merry",
        "age" : "10",
        "pet" : "Hamster"
      }
    }
  ]
}';

print Dumper(decode_json ($json_data));

Вывод:
$VAR1 = {
          'href' => 'http://localhost/profiles',
          'items' => [
                       {
                         'href' => 'http://localhost/id111',
                         'Child' => {
                                      'pet' => 'Cat',
                                      'name' => 'Jack',
                                      'age' => '11'
                                    }
                       },
                       {
                         'href' => 'http://localhost/id303',
                         'Child' => {
                                      'age' => '8',
                                      'name' => 'David',
                                      'pet' => 'Dog'
                                    }
                       },
                       {
                         'href' => 'http://localhost/id516',
                         'Child' => {
                                      'name' => 'Merry',
                                      'pet' => 'Hamster',
                                      'age' => '10'
                                    }
                       }
                     ]
        };

Не могу понять в какие структуры Perl пероводится JSON.
Каким образом, например, для каждого обьекта "Child" распечатать только значения его "name" и "pet"?

Жду ваших советов!


Содержание

Сообщения в этом обсуждении
"Perl и парсинг JSON + Dumper"
Отправлено Pahanivo , 27-Мрт-16 12:56 
студэнт, ты задолбал
http://www.opennet.dev/openforum/vsluhforumID9/10082.htm
в несложных структурах перла можно было за месяц вполне себе разобраться :)

"Perl и парсинг JSON + Dumper"
Отправлено ACCA , 28-Мрт-16 07:31 
> Не могу понять в какие структуры Perl пероводится JSON.

В хэши и и списки [хэшей].


> Каким образом, например, для каждого обьекта "Child" распечатать только значения его "name"
> и "pet"?

print join(', ',@{$item->{Child}}{qw'name pet'}),"\n";

Как-то так.


"Perl и парсинг JSON + Dumper"
Отправлено erera22 , 30-Мрт-16 20:37 
Не хэши, а ссылки на хэши (hash refs):
$hash_ref = {
   href => 'http://...',
   Child => {
      name => 'foo',
      pet => 'bar',
      age => 123
   }
};

print $hash_ref->{href}, $hash_ref->{Child}->{age}