【发布时间】:2014-09-17 13:04:37
【问题描述】:
我正在尝试打印大型 .json 文件的“名称”字段的内容,但在解析时遇到问题。到目前为止,我已经尝试使用“<:encoding .json>
这是我的代码,错误在第 11 行:
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
open(my $fh, "<:encoding(UTF-8)", "pokedex.json");
my $ejson = <$fh>;
close($fh);
my $djson = decode_json $ejson;
for(my $i=1;$i<=718;$i++){
print $djson->{"$i"}{"name"}, "\n";
}
错误本身是, or } expected while parsing object/hash, at character offset 1 (before "\n") at jsonreverser.pl line 11.
我通过在线验证程序运行了 .json 文件,它说它的格式正确。这是json文件的链接:http://vps.zazez.com/junk/pokedex.json
【问题讨论】:
-
在解码之前尝试打印 $ejson,看看它是否包含你认为的内容。然后查找 File::Slurp :-)
-
我..哦。好吧,我现在明白为什么它不起作用了,但是为什么会有一个 random ;在 { 开头?如果我啜饮它会解决这个问题吗?
-
你在哪里看到这个“随机的';'”?
-
又是一个愚蠢的错误。这 ';'来自 Data::Dumper。我现在明白了,它适用于 File::Slurp。谢谢。
-
很高兴您自己找到了解决方案!