【发布时间】:2012-07-21 23:48:23
【问题描述】:
我正在编写一个使用 JSON 模块解析 reddit 的 JSON 的 perl 脚本。
但是我确实对 perl 和 json 都非常陌生。
我成功解析了首页和子版块,但是 cmets 的结构不同,我不知道如何访问我需要的数据。
这是成功找到首页和子版块的“数据”哈希的代码:
foreach my $children(@{$json_text->{"data"}->{"children"}}) #For values of children.
{
my $data = $children->{"data"}; #accessing each data hash.
my %phsh = (); #my hash to collect and print.
$phsh{author} = $data->{"author"};#Here I get the "author" value from "data"
*Etc....
这成功地从http://www.reddit.com/.json得到我需要的东西
但是当我转到评论的 json 时,this one for example,它有不同的格式,我不知道如何解析它。如果我尝试与解析器崩溃之前相同的操作,则说它不是 HASH 引用。
所以我的问题是:如何访问第二个 JSON 中的“孩子”?我需要获取 Post 的数据和 cmets 的数据。有人可以帮忙吗?
提前致谢! (我知道这可能很明显,但我的睡眠很少 XD)
【问题讨论】:
-
使用
Data::Dumper打印出你认为应该是哈希引用的变量的值,看看它到底是什么。 -
您的
my %phsh = ();每次循环都会(重新)初始化该哈希。 -
哦,谢谢@Kenosis,我什至没有注意到 XD
-
my %phsh = ();最好写成my %phsh;