Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在字符偏移量处解析数组时,在Perl代码中解码JSON问题:,或]预期_Json_Perl - Fatal编程技术网

在字符偏移量处解析数组时,在Perl代码中解码JSON问题:,或]预期

在字符偏移量处解析数组时,在Perl代码中解码JSON问题:,或]预期,json,perl,Json,Perl,我编写的Perl代码一直在工作,直到最近我再次尝试运行它。这个问题似乎源于JSON::XS“decode_JSON”方法 代码段: use warnings; use strict; use MooseX::Singleton; use Array::Utils qw(:all); use Data::Dumper; use JSON::XS qw(encode_json decode_json); use Storable; use Tie::IxHash; open (my $ob

我编写的Perl代码一直在工作,直到最近我再次尝试运行它。这个问题似乎源于JSON::XS“decode_JSON”方法

代码段:

use warnings;
use strict;
use MooseX::Singleton;
use Array::Utils qw(:all);
use Data::Dumper;
use JSON::XS qw(encode_json decode_json);
use Storable;
use Tie::IxHash;

    open (my $observations_fh, '<', 'observations.json') or die "Could not open observations.json\n";
    my $observations_json = <$obserations_fh>;
    my @decoded_observations = @{decode_json($observations_json)};
使用警告;
严格使用;
使用MooseX::Singleton;
使用数组::Utils qw(:all);
使用数据::转储程序;
使用JSON::XS qw(encode_JSON decode_JSON);
使用可储存材料;
使用Tie::ixash;

打开(my$observations\u fh,,这可能表明您在
$observations\u JSON
中有不完整的JSON。您认为整个文件只包含一行的假设可能不正确。请使用

my $observations;
{
    open (my $observations_fh, '<', 'observations.json')
        or die("Can't open observations.json: $!\n");

    local $/;
    my $observations_json = <$obserations_fh>;
    $observations = decode_json($observations_json);
}
my$observations;
{

打开(my$observations\u fh,'如果您没有修改
$/
,则此
my$observations\u json=
将只读取文件中的一行。可能您没有读取所有内容,并且格式不正确?Hakon是对的。我建议使用file::Slurp;即我的$observations\u json=read\u文件('observations.json'));是的,结果是JSON文件没有完全下载,这很奇怪。我是使用HTTP::Request下载的,所以我不确定为什么会发生这种情况,但现在我至少知道了问题的根源。这是一个106 MB的JSON文件,我还有另外两个完全下载的JSON文件较小,所以文件的大小一定导致了错误某种问题