#json #perl #hashref
#json #perl #hashref
Вопрос:
Раньше я JSON::Parse
декодировал файл json. Когда я сбросил его в файл, он выглядит так, как показано ниже. Мне нужно извлечь «url» из каждого из репозиториев. Как я могу это сделать? Я пытался получить доступ к элементам, но, похоже, не могу добраться до них. Есть предложения?
Как я расшифровал .файл json:
my $json_hash_ref = {};
$json_hash_ref= json_file_to_perl ($REPO_JSON_FILE) or confess "No repos found";
Это дамп данных:
$VAR1 = {
'repositories' => [
{
'size' => 2970,
'watchers' => 49,
'created_at' => '2012-03-20T05:04:42Z',
'url' => 'http://github.cerner.com/aeon-core/aeon-topology',
'open_issues' => 0,
'followers' => 49,
'owner' => 'aeon-core',
'has_downloads' => 1,
'has_issues' => 0,
'language' => 'Java',
'pushed' => '2014-06-17T18:32:37Z',
'private' => ${$VAR1->{'repositories'}[0]{'has_issues'}},
'name' => 'aeon-topology',
'score' => '1',
'has_wiki' => ${$VAR1->{'repositories'}[0]{'has_issues'}},
'pushed_at' => '2014-06-17T18:32:37Z',
'description' => '',
'username' => 'aeon-core',
'created' => '2012-03-20T05:04:42Z',
'homepage' => '',
'forks' => 59,
'fork' => ${$VAR1->{'repositories'}[0]{'has_issues'}},
'type' => 'repo'
},
{
.....
},...
Ответ №1:
my @urls = map $_->{url}, @{ $json_hash_ref->{repositories} };
Для получения хорошей информации о обходе глубоких структур данных прочитайте руководство по ссылкам на perl .
Комментарии:
1. Спасибо! Документы помогли объяснить ваше решение. Я ценю ссылку, а также ответ.