Всем привет,
Имею сложность с парсингом данных представленных в 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"?Жду ваших советов!
студэнт, ты задолбал
http://www.opennet.me/openforum/vsluhforumID9/10082.htm
в несложных структурах перла можно было за месяц вполне себе разобраться :)
> Не могу понять в какие структуры Perl пероводится JSON.В хэши и и списки [хэшей].
> Каким образом, например, для каждого обьекта "Child" распечатать только значения его "name"
> и "pet"?print join(', ',@{$item->{Child}}{qw'name pet'}),"\n";
Как-то так.
Не хэши, а ссылки на хэши (hash refs):
$hash_ref = {
href => 'http://...',
Child => {
name => 'foo',
pet => 'bar',
age => 123
}
};print $hash_ref->{href}, $hash_ref->{Child}->{age}